我正在使用函数 file_get_contents 从网页获取内容。一些网站运行良好,但大多数网站都给了我这个错误
failed to open stream: HTTP request failed! HTTP/1.1 503 Service Temporarily Unavailable
这是我的简单代码
echo file_get_contents("url");
当我在浏览器中运行此 url 时,它工作正常。可能是什么问题?
我正在使用函数 file_get_contents 从网页获取内容。一些网站运行良好,但大多数网站都给了我这个错误
failed to open stream: HTTP request failed! HTTP/1.1 503 Service Temporarily Unavailable
这是我的简单代码
echo file_get_contents("url");
当我在浏览器中运行此 url 时,它工作正常。可能是什么问题?
503 表示功能正在运行,并且您从远程服务器获得拒绝您的响应。如果你曾经尝试对谷歌结果进行 cURL 搜索,同样的事情也会发生,因为他们可以检测到 file_get_contents 和 cURL 使用的用户代理,从而阻止这些用户代理。您访问的服务器也有可能将其 IP 地址列入黑名单以进行此类做法。
主要是命令在远程情况下无法像浏览器一样工作的三个常见原因。
1) The default USER-AGENT has been blocked.
2) Your server's IP block has been blocked.
3) Remote host has a proxy detection.
使用此脚本,所有网站都认为您是浏览器:
<?php
$url='http://mywebsite.com'
$ch = curl_init();
$user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSLVERSION,CURL_SSLVERSION_DEFAULT);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$webcontent= curl_exec ($ch);
$error = curl_error($ch);
curl_close ($ch);
?>