2013-05-05 91 views
0

如果网站使用基本身份验证,如何使用PHP获取网站源代码?通过身份验证URL通过PHP获取HTML源代码

<?php 
$ch = curl_init("http://domain.com/password.html"); 
$fp = fopen("source.txt", "w"); 
curl_setopt($ch, CURLOPT_USERPWD, "username:password"); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
$output = curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
?> 

我在做什么错?

+1

您是否收到任何错误?预期的结果是什么?你究竟得到了什么? – 2013-05-05 04:14:11

+0

我得到空文件(source.txt)...并没有错误... – mirsad 2013-05-05 04:19:18

+0

你似乎没有写信给source.txt。也许你错过了'fwrite($ fp,$ output);'? – 2013-05-05 04:20:11

回答

0

我不认为你错过了一个fwrite,因为PhpMyCoder建议curl写入curl_exec上的文件,只要CURLOPT_FILE设置为文件句柄即可。

可能发生的问题是重定向问题:某些基本身份验证模型会导致发生重定向,如果重定向没有任何HTML数据传递,则可能会解释您的空文件。

尝试添加行

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

与你的其他卷曲选项,看看是否有帮助。

+0

不起作用,即使我添加了这一行:curl_setopt($ ch,CURLOPT_FOLLOWLOCATION,true); – mirsad 2013-05-05 10:00:56

+0

很奇怪,我在本地运行你的代码(使用CURLOPT_FOLLOWLOCATION设置),它工作正常。目标服务器可能会出现一些奇怪的现象吗? – notleigh 2013-05-05 12:51:49

+0

我正试图在地址192.168.1.1的路由器上进行连接。是不是有点不同? – mirsad 2013-05-07 04:27:33