cURL не может следовать за перенаправлением - PullRequest
1 голос
/ 26 марта 2012

моя функция curl не может следовать за перенаправлением перенаправителя внешней ссылки Facebook, l.php, и я понятия не имею, что не так ...

вот код, над которым я работаю, и я прокомментировал строки, которые я пробовал ... и пример ссылки (http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DGvhFyNLK66A%26feature%3Dyoutu.be&h=xAQFD_3svAQFKxF5YrtqNQ5cL3lIQxo0uaC9PoB7qAvG7Yw&enc=AZPxNZ8P5q54FREC37UC_MP02pwh2DOmsI5bbFkoQm5VUPUlYeNzQASjarRjhTtcedRkmM3mDjK7J_r_P5pRpYhL)

function connect($u) {
$ch= curl_init();
curl_setopt($ch, CURLOPT_URL, $u);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_HEADER, true);
//curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
//curl_setopt($ch, CURLOPT_REFERER, 'spie');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//curl_setopt($ch, CURLOPT_VERBOSE, true);
//curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
$source=curl_exec($ch);
curl_close($ch);
return $source;
}

спасибо ..

1 Ответ

1 голос
/ 27 марта 2012

Сначала я подумал, что это проблема перенаправления с cURL (безопасный режим включен, например).Но на самом деле это происходит из-за того, как работает перенаправитель Facebook.

Нет заголовка Location:, поэтому curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); вам не поможет.

Страница ссылок Facebook фактически перенаправляет вас с помощьюJavascript:

<script type="text/javascript">document.location.replace("http:\/\/www.youtube.com\/watch?v=GvhFyNLK66A&feature=youtu.be");</script>

cURL не может ни анализировать содержимое страницы, ни выполнять javascript, так что это ожидаемое поведение.Если вы все еще хотите это сделать, вам нужно проанализировать содержимое страницы, получить URL из javascript и отправить новый запрос cURL на этот URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...