本教程将介绍solr的url中带有&;(与号)的simplexml_load_file的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。
问题描述
我使用的是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,因此查询失败。
推荐答案
尝试:
simplexml_load_file(rawurlencode('http://127.0.0.1:8983/solr/select?q=*&fq=shopid:40&start=0&rows=18&fq=manufacturer:"Bausch' .urlencode('&'). 'Lomb"'))
参见file
参数说明:http://php.net/manual/en/function.simplexml-load-file.php
好了关于solr的url中带有&;(与号)的simplexml_load_file的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。