PHP: может ли CURL следовать метаперенаправлениям

CURL может следовать перенаправлениям заголовков с использованием CURLOPT_FOLLOWLOCATION, но возможно ли следовать перенаправлениям метаобновления?

Спасибо


person Tom    schedule 30.11.2009    source источник


Ответы (1)


Да, но вам придется сделать это самостоятельно, проанализировав ответ и найдя что-то вроде:

<meta http-equiv="refresh" content="5;url=http://example.com/" />

Подчинение <meta> запросам на обновление выполняется на стороне браузера. Используйте синтаксический анализ DOM для поиска тегов <meta> с соответствующими атрибутами в ответе, который дает вам cURL.

Если вы можете гарантировать, что ответ является допустимым XML, вы можете сделать что-то вроде этого:

$xml = simplexml_load_file($cURLResponse);
$result = $xml->xpath("//meta[@http-equiv='refresh']");
// Process the $result element to get the relevant bit out of the content attribute
person Dominic Rodger    schedule 30.11.2009