Я использую Zend Framework 2's AbstractRestfulController
для реализации API CRUD в нашем проекте. Использование метода PUT HTTP вызывает логику обновления существующего объекта.PHP5.4 «parse_str» ведет себя неожиданно
При получении запроса PUT AbstractRestfulController
преобразует тело запроса в массив с помощью функции PHP parse_str
, но эта функция не выполняет то, что она должна делать.
Потому что он дал мне странные результаты, я попытался parse_str
с образцами данных, приведенных в PHP документации:
// sample data from the PHP docs
$content = "first=value&arr[]=foo+bar&arr[]=baz";
// put the parsed variables into $parsedParams
parse_str($content, $parsedParams);
var_dump
ИНГ $parsedParams
дает мне
array(5) {
["first"]=> string(1) "v"
["lue"]=> string(0) ""
["rr"]=> array(2) {
[0]=> string(5) "foo b"
[1]=> string(1) "b"
}
["r"]=> string(0) ""
["z"]=> string(0) ""
}
Видимо характер «а «смущает parse_str
, но я совершенно не знаю, что вызывает это странное поведение. Кодирование файла PHP - это UTF-8, на сервере работает Ubuntu 14.04 с PHP 5.4 в качестве модуля Apache 2.4 внутри среды Vagrant.
Что может быть причиной этого? Я читал о проблемах с объектом HTML &
вместо простого &
, но это, похоже, не применимо здесь.
UPDATE
Я просто побежал один и тот же код в командной строке в интерактивном режиме с помощью SSH
ИНГОВ в машину Vagrant. В интерактивном режиме parse_str
работает без проблем! Затем я запускал свой тестовый скрипт из командной строки через $ php /var/www/test.php
, который также работал правильно. Это проблема с модулем или конфигурацией Apache PHP?
Просто попробовал с PHP v5.4 и работает без каких-либо проблем , Возможно, ваша строка содержит невидимые символы, которые заставляют PHP задушить? Не могли бы вы попробовать 'echo strlen ($ content)' и посмотреть, что получилось? – silkfire
скопировал тот, который вы опубликовали. http://codepad.viper-7.com/FYbCCx кажется прекрасным – Ghost
strlen ($ content) дает мне длину 35, что является правильным, может быть, это проблема моей версии PHP или что-то в этом роде? – Subsurf