Я использую 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>
Однако, когда я пытаюсь получить указанный выше URL-адрес, используя simplexml_load_file следующим образом:
$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, поэтому запрос не выполняется.
<str>manufacturer:"Bausch & Lomb"</str>
, то это искаженный XML, и вы должны исправить его, прежде чем сможете обработать его с помощью XML-инструментов. Должно быть<str>manufacturer:"Bausch & Lomb"</str>
- person jasso   schedule 20.10.2011