PHP: может ли CURL следовать мета-перенаправлениям - PullRequest
3 голосов
/ 30 ноября 2009

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

1 Ответ

15 голосов
/ 30 ноября 2009

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

<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
...