エスケープには注意する必要があることに注意してください。私はこれを試しましたが、喜びはありませんでした。これらの行に沿って多くの組み合わせを試しました:
$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
これにより、無効なトークン (ステータス 400) エラーが発生していました。%5C%22 (\") エスケープ シーケンスが気に入らなかったのですが、どこから取得したのでしょうか?!
Zends コードの奥深くに「parse_str」が埋め込まれていることがわかりました。これは、何らかの理由で (Ubuntu のデフォルトの php 設定?) php.ini ファイルで magic_quotes_gpc が On に設定されていたため、クエリ文字列にスラッシュを追加していました。
これをオフにすると、生成された URL を次のように戻すことができました。
http://spreadsheets.google.com:80/feeds/list/spreadsheetkey/od6/private/full?sq=name%3D%22Andrew+John%22
そしてすべてが機能し始めました。
ちなみに、次のことを行うため、HTTP インスペクターを介して実行する必要がありました。
echo $query->getQueryUrl();
各引用符の前に %5C を付けずに上記の文字列を送信していると誤って報告しました! コードが教えてくれることを信頼することは決して無駄ではありません...
したがって、Zend フレームワークの Gdata クラスの構造化クエリに問題があり、引用符を追加するだけでは問題が解決しない場合は、magic_quotes_gpc が On に設定されているかどうかを簡単に確認してください!