使用cURL下载网站的HTML源代码,但获取的文件与预期不同

use*_*912 4 php http-referer curl spoofing

我正在尝试使用cURL和PHP来下载此处的HTML源代码(如浏览器中所示).但不是实际的源代码,而是返回(元刷新链接设置为0).

<html>
    <head><title>Object moved</title></head>
    <body>
        <h2>Object moved to <a href="https://login.live.com/login.srf?wa=wsignin1.0&amp;rpsnv=11&amp;checkda=1&amp;ct=1321044850&amp;rver=6.1.6195.0&amp;wp=MBI&amp;wreply=http:%2F%2Fwww.windowsphone.com%2Fen-US%2Fapps%2Fea39f002-ac30-e011-854c-00237de2db9e&amp;lc=1033&amp;id=268289">here</a>.
        </h2>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我试图欺骗引用标题作为网站,但似乎我做错了.代码如下.有什么建议?谢谢

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.windowsphone.com/en-US/apps/ea39f002-ac30-e011-854c-00237de2db9e');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.6 (KHTML, like Gecko) Chrome/16.0.897.0 Safari/535.6'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_REFERER, "http://www.windowsphone.com/en-US/apps/ea39f002-ac30-e011-854c-00237de2db9e");

$html = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)

jli*_*jli 6

添加curl选项以遵循重定向:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Run Code Online (Sandbox Code Playgroud)

如果它是元刷新而不是HTTP移动标头,请参阅: PHP:CURL可以遵循元重定向

如flesk所述,您可能还需要存储cookie.