[英]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 ;
?>
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.