Эмулировать запрос браузера по phpQuery — URL Rewrite изменил путь

я использую phpQuery смоделировать запрос браузера. Коды просты, как следует:

require_once('phpQuery/phpQuery.php');
phpQuery::browserGet($url, 'success1');
function success1($browser) {
print $browser;
}

где URL http://www.etk.cc/bmw/EN/parts/info/13547556118,

Тем не менее, я получил исключение:

Неустранимая ошибка: необработанное исключение ‘Zend_Uri_Exception’ с сообщением
«Путь» / bmw / EN / запчасти / информация /http://www.etk.cc/bmw/EN/parts/info/Throttle
housing Assy / 13547556118 / «не является допустимым путем HTTP»

Считается, что URL Rewrite изменил URL на http://www.etk.cc/bmw/EN/parts/info/Throttle housing Assy/13547556118/ но библиотека phpQuery или Zend не распознает перезапись URL.

Как мне решить эту проблему (загрузка правильного URL)?

Примечание: я не могу использовать URL после перезаписи URL, так как URL содержит название продукта & не имеет шаблона.

0

Решение

Вот мое решение.

Сначала я использую следующие коды, чтобы получить заголовок запроса:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
$out = curl_exec($ch);

От Location: заголовок, я могу знать переписанный URL. Затем я использую phpQuery снова, чтобы получить необходимую информацию, используя вновь полученный переписанный URL.

Сноска: Я думаю, что Исключением в вопросе является ошибка в phpQuery.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]