私は Solr を使用しており、ブラウザから正常に動作する次のクエリがあります。
http://www.someipaddress.com:8983/solr/select?q=*&fq=shopid:40&start=0&rows=18&fq=manufacturer:"Bausch+%26+Lomb"
戻り xml の一部に次のように表示されます。
<str>manufacturer:"Bausch & Lomb"</str>
ただし、次のように simplexml_load_file を使用して上記の URL を取得しようとすると:
$xml = simplexml_load_file("http://127.0.0.1:8983/solr/select?q=*&fq=shopid:40&start=0&rows=18&fq=manufacturer:\"Bausch+%26+Lomb\"");
Solr には (print_r から) 次のようなメーカー文字列が渡されているため、結果が得られません。
[str] => Array ( [0] => shopid:40 [1] => manufacturer:"Bausch+%26+Lomb" )
そのため、ブラウザを介してクエリを実行しているときに %26 を渡しますが、クエリで正しく処理されます。しかし、simplexml_load_file を使用すると %26 のままになるため、クエリは失敗します。