PHP警告:file_get_contents无法打开流:HTTP请求失败! HTTP / 1.0 400错误请求

时间:2012-07-28 11:15:35

标签: php http

我遇到以下错误“警告:file_get_contents无法打开流:HTTP请求失败!HTTP / 1.0 400错误请求”,同时点击“http://Google.com”

 <?php
        $content = file_get_contents("http://www.google.com");
        if (strpos($http_response_header[0], "200")) { 
         echo "SUCCESS";
       } 
       else { 
              echo "FAILED";
            }
   ?>

因为这个问题我无法解析URL。我正在使用WAMP(Apache Version-2.2.22,PHP 5.4.3版)。

采取的步骤: - 1.allow_url_fopen在php.ini中启用 2.Tried编码URL 3.Even Used Curl php功能遇到同样的问题。 4.启用防火墙

请帮忙。

5 个答案:

答案 0 :(得分:5)

$html = @file_get_html($url);   
if($html==FALSE) {
  echo 'error';
} else {
  echo 'success';
}

在这里检查一下这个$ url是www.google.com。然后你得到正确的结果

答案 1 :(得分:2)

请求实际上成功,您有$ content内容的页面。但是你做错了成功的考验。网址不会返回200,而是返回302.

答案 2 :(得分:0)

这是因为它返回状态302(FOUND)

echo $http_response_header[0]; //返回'HTTP / 1.0 302 Found'

答案 3 :(得分:0)

某些服务器配置不允许使用file_get_contents(通过fopen)打开远程地址。 您可能想要更改配置,但他更喜欢使用cURL打开远程站点(更可靠,速度提高约20倍)。

可以在PHP文档here

中找到一个快速而简单的示例

答案 4 :(得分:-1)

我遇到了同样的问题。 我在Windows 7上使用WAMP,直到最后我找到解决方案。

您需要确保在php.ini文件中取消注释extension = php_openssl.dll

C:\ wamp \ bin \ php文件夹。如果您通过WAMP服务器菜单设置openssl PHP&gt;&gt; PHP扩展,它不会影响到php.exe

希望这也适合你。