0

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

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

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

采取的步骤:- 1.allow_url_fopen 在 php.ini 中启用 2.Tried 对 URL 进行编码 3.Even 使用 Curl php 函数遇到同样的问题。4.允许防火墙开启

请帮忙。

4

5 回答 5

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

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

于 2012-07-28T11:24:14.973 回答
2

请求实际上成功了,你在 $content 中有页面。但是你对成功进行了错误的测试。url 不返回 200,而是 302。

于 2012-07-28T11:22:03.163 回答
0

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

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

于 2012-07-28T11:24:11.410 回答
0

某些服务器配置不允许使用file_get_contents(via fopen) 打开远程地址。您可能想要更改配置,但他更喜欢使用cURL打开远程站点(更可靠且速度快 20 倍)的方法。

可以在此处的 PHP 文档中找到一个快速而简单的示例

于 2012-07-28T11:24:46.780 回答
-1

我和你有同样的问题。我在 Windows 7 上使用 WAMP,直到最终找到解决方案。

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

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

希望这对你也有用。

于 2014-01-08T17:58:27.620 回答