繁体   English   中英

PHP cURL,file_get_contents空白页

[英]PHP cURL, file_get_contents blank page

我正在尝试使用cURL或file_get_content获取页面内容。 在许多网站上都可以,但是我正在尝试在朋友的服务器上这样做,但事实并非如此。

我认为标头或类似的东西有保护。 我收到以下错误代码:401禁止。 如果我尝试使用普通的浏览器访问同一页面,则可以正常工作。

这是我的file_get_contents函数代码:

$homepage = file_get_contents('http://192.168.1.3');

echo $homepage; // just a test to see if the page is loaded, it's not.

if (preg_match("/my regex/", $homepage)) {
   // ... some code
}

我也尝试了cURL:

$url = urlencode('http://192.168.1.3');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0');
$result = curl_exec($ch) or die("Not working"); 
curl_close($ch);

echo $result; // not working ..

没有任何效果,也许我应该在curl_setopt中添加更多的参数...

谢谢。

PS:如果我尝试使用linux(wget),我会收到一个错误消息,但是如果我尝试使用aria2c,它会起作用。

使用useragent尝试此更新

<?php
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, 'http://192.168.1.3/');
curl_setopt($curlSession,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($curlSession, CURLOPT_BINARYTRANSFER, true);
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);
$homepage = curl_exec($curlSession);
curl_close($curlSession);
echo $homepage ;
?>

如果仍然出现空白页,则必须在firefox 安装此加载项,并查看“请求标头”和“响应标头” 在此处输入图片说明

HTTP状态401表示未授权。 您需要向服务器发送用户名和密码。

使用file_get_contents,添加第二个param。 这是一个上下文蒸汽,您可以设置标题信息。

您最好将curl用于要访问本地文件的file_get_contents,因为它是一个块函数。 如下添加选项,这是基本授权。

curl_setopt($ch,CURLOPT_USERPWD,"my_username:my_password");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM