File_get_contents不适合我的域


file_get_contents not working for my domain

我尝试使用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);

但是它只是返回一个空白页。

看起来像我试图让内容被封锁或列入黑名单的网站我的网站域名或其他。

我有办法摆脱这个吗??

你可以试着找出你的连接被阻止的原因:

  • 基于IP:他们阻塞了你的服务器。
  • 基于用户代理:发送一个用户代理来识别你是一个机器人。
  • 如果他们不喜欢你的机器人用户代理假装是别人的机器人,像Google (evil)
  • 如果他们阻止机器人,发送一个看起来像浏览器的用户代理(evil)
  • 标识浏览器和脚本的其他参数。

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

可能是DNS问题,拼写错误或其他服务器阻塞了您的ip.

curl_error()表示什么?

BTW, CURLOPT_CONNECTTIMEOUT 2秒通常是相当小的