HTTP请求失败! HTTP / 1.1 503服务暂时不可用

时间:2013-06-12 09:15:29

标签: php file-get-contents

我正在使用函数file_get_contents从网页获取内容。 一些网站运作良好,但大多数网站给我这个错误

failed to open stream: HTTP request failed! HTTP/1.1 503 Service Temporarily Unavailable

这是我的简单代码

echo file_get_contents("url");

当我在浏览器中运行此网址时,它运行正常。可能是什么问题?

2 个答案:

答案 0 :(得分:6)

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. 

答案 1 :(得分:1)

使用此脚本,所有网站都认为您是浏览器:

<?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);
?>