cURL:重定向后没有实际重定向

时间:2012-02-11 07:15:39

标签: php curl

好吧我正在练习使用cURL登录不同的网络服务。对于这个特殊的尝试,我正在做YouTube。这是一个相当大的挑战,但我终于得到了......差不多。

将大量的帖子数据标签发布到登录页面后,您会收到checkCookie类似的东西。 checkcookie页面验证您是否拥有正确的cookie,然后将您重定向到youtube.com(登录到您的帐户)这就是搞砸了我。

当我有这个:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

我得到了checkcookie页面的来源。它简单地说“文件移动”。这不是我想要的,我希望将我登录的源存储到变量中。所以我尝试了其他的东西......

当我使用此设置时:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

我被发送到youtube页面,我已登录!它似乎工作!除了...我不想被重定向到我的脚本。我的目标是在登录后获取youtube.com的来源。

换句话说,cURL正好登录,问题是我真的被重定向到YouTube。我不想要的。

有什么建议吗?这就像我需要遵循重定向......但不能重定向。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

试试这个:

<?php
function getURL($url) {
    $curlHandle = curl_init(); // init curl
    curl_setopt($curlHandle, CURLOPT_URL, $url); // set the url to fetch
    curl_setopt($curlHandle, CURLOPT_HEADER, 0);
    curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);
    curl_setopt($curlHandle, CURLOPT_POST, 0);
    $content = curl_exec($curlHandle);
    curl_close($curlHandle);
    return $content;
}
?>

答案 1 :(得分:0)

您似乎正在重定向,因为您回显了curl_exec,其中有一个用于重定向的JavaScript代码。由于您可能是从浏览器请求,因此它会运行代码并将您重定向到YouTube。如果是这种情况,那么显而易见的解决办法就是关闭JS或过滤你回应自己的内容