通过经过身份验证的URL使用PHP获取HTML源代码

通过经过身份验证的URL使用PHP获取HTML源代码,php,url,Php,Url,如果网站使用的是基本身份验证,如何使用PHP获取网站源代码 <?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_cl

如果网站使用的是基本身份验证,如何使用PHP获取网站源代码

<?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);
?>


我做错了什么?

我不认为您缺少一个fwrite,正如PhpMyCoder所建议的,只要CURLOPT\u文件设置了文件句柄,curl就会在curl\u exec上写入文件

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

尝试添加行

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

请与其他卷曲选项联系,看看是否有帮助。

您是否有任何错误?预期的结果是什么?您实际得到的是什么?我得到的是空文件(source.txt)。。。而且没有错误…您似乎没有写入source.txt。也许您缺少一个
fwrite($fp,$output)?不起作用,即使我添加以下行:curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);非常奇怪,我在本地运行了您的代码(使用CURLOPT_FOLLOWLOCATION集),它运行正常。目标服务器可能有什么奇怪的情况吗?我正在尝试连接地址为192.168.1.1的路由器。这有什么不同吗?