file_get_contents不适用于我的域名

时间:2013-03-29 15:25:04

标签: php curl file-get-contents

我尝试使用file_get_contents()来解析网站的html。

我从我的网站上运行了代码。

一开始工作正常。但突然出现了这个错误:

Warning: file_get_contents(http://www.***.com/) [function.file-get-contents]: failed to open stream: HTTP request failed!

我尝试了其他网站,它运行正常。我从我的其他网站运行代码,它工作正常。

所以我在这里搜索并使用了cURL代码:

$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,'http://www.***.com/');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name');
$query = curl_exec($curl_handle);
curl_close($curl_handle);

但它只返回一个空白页。

看起来我试图阻止内容或将我的网站域名列入黑名单的网站。

我有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

您可以尝试找出阻止连接的原因:

  • 基于IP:他们阻止了您的服务器。
  • 基于用户代理:发送一个用户代理,将您识别为机器人。
  • 如果他们不喜欢您的机器人用户代理假装成其他人的机器人,例如Google( evil
  • 如果他们阻止僵尸程序,请发送一个看起来像浏览器的用户代理( evil
  • 标识浏览器与脚本的其他参数。

答案 1 :(得分:1)

您的服务器无法访问其他服务器

可能是dns问题,拼写错误或其他服务器阻止了您的IP ..

curl_error()说了什么?

BTW,CURLOPT_CONNECTTIMEOUT 2秒通常非常小