Не работает:
$url = 'http://127.0.0.1:8983/solr/select?q=*&fq=shopid:40&start=0&rows=18';
$url .= '&fq=manufacturer:"Bausch' .urlencode('&'). 'Lomb"';
simplexml_load_file(rawurlencode($url));
Часть запроса производителя получилась как: "Bausch&Lomb"
;
Не работает:
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"'))
Добавление пробелов рядом со словами Bausch and Lomb привело к ошибке файла simplexml_load.
Работала:
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"'))
Обмен мест для + работает!
Вот так я и сделал это динамически.
$manufacturer = urlencode("Bausch & Lomb");
$manufacturer_insert = "&fq=manufacturer:\"$manufacturer\"";
$xml = simplexml_load_file(rawurlencode("http://127.0.0.1:8983/solr/select?q=$shopid_insert$start_insert$rows_insert$sort_insert$manufacturer_insert"));
Это работает для производителей с амперсандом в их названии.
Важно отметить, что если вы передавали значения с пробелами, теперь их нужно будет кодировать перед добавлением. Например:
Прежде чем я смог просто использовать это для моей вставки сортировки:
$sort_insert = "&sort=price desc";
Теперь мне нужно urlencode просто "price desc". Когда я попытался urlencode всей строки sort_insert, запрос simplexml завершился неудачей.
После (работы):
$sort = urlencode("price desc");
$sort_insert = "&sort=$sort";
Еще раз спасибо ... Вернуться к проекту!