Стоит отметить, что вы должны быть осторожны с побегом. Я попробовал это и не получил никакой радости. Я пробовал много комбинаций в этом направлении:
$query->setSpreadsheetQuery("name=\"Andrew John\"");
но безрезультатно. Запуск трафика через HTTP-инспектор (и настройка вашего Zend HTTP-клиента для работы через прокси — еще одна вещь, на которую стоит обратить внимание!) Я мог видеть, что сгенерированные URL-адреса из этой работы выглядят следующим образом:
http://spreadsheets.google.com:80/feeds/list/spreadsheetkey/od6/private/full?sq=name%3D%5C%22Andrew+John%5C%22
Это приводило к ошибкам Invalid Token (Status 400). Ему не нравилась escape-последовательность %5C%22 (\"), но откуда она взялась?!
Оказывается, глубоко в коде Zends есть «parse_str», который добавлял косые черты к строке запроса, потому что по какой-то причине (конфигурация php по умолчанию в Ubuntu?) magic_quotes_gpc было установлено на On в файле php.ini.
Отключение этого параметра позволило сгенерированным URL-адресам вернуться к:
http://spreadsheets.google.com:80/feeds/list/spreadsheetkey/od6/private/full?sq=name%3D%22Andrew+John%22
и все стало работать.
Между прочим, мне пришлось запустить его через HTTP-инспектор, потому что:
echo $query->getQueryUrl();
неправильно сообщил, что отправляет указанную выше строку без %5C перед каждой кавычкой! Просто показывает, никогда не стоит доверять тому, что говорит вам ваш код...
Итак, если у вас есть проблемы со структурированными запросами в классах Gdata Zend Framework и простое добавление кавычек не решает их, быстро проверьте, не включен ли у вас magic_quotes_gpc!
person
reefnet_alex
schedule
15.09.2010