file_get_contents()没有返回?

时间:2010-05-21 09:22:07

标签: php file-get-contents

为什么我没有获得file_get_contents($ myurl)的回报,但我确实获得了wget的输出

更新

我使用curl获取返回标题和结果,并发现它在标题上而不是在正文中

HTTP/1.1 200 Document follows
Transfer-Encoding: chunked
Content-type: text/plain
Server: XMS (724Solutions HTA XSAM_30_M2_B020 20070803.172831)
Date: Fri, 21 May 2010 10:48:31 GMT
Accept-Ranges: bytes

HTTP/1.1 404 ChargedPartyNotAvailable
Transfer-Encoding: chunked
Content-type: text/plain
Server: XMS (724Solutions HTA XSAM_30_M2_B020 20070803.172831)
Date: Fri, 21 May 2010 10:34:13 GMT
Accept-Ranges: bytes

如何只提取“200 Document Follow”和“404 ChargedPartyNotAvailable”?

3 个答案:

答案 0 :(得分:5)

你的php配置中是否启用了allow_url_fopen

但是我希望如果没有,你会收到警告 - 你有没有显示错误/警告?您可以暂时添加到脚本的顶部:

error_reporting(E_ALL);
ini_set('display_errors', true);

然后您可能会发现为什么file_get_contents()不起作用。

修改

如果您只对标题感兴趣,则可能只能使用get_headers()

答案 1 :(得分:3)

您可以使用PHP Curl包来检索URL的内容

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$myUrl);
$result = curl_exec($ch);
curl_close($ch); 

或者如果您只想使用file_get_contents,请检查您是否正确配置了PHP.ini

http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

如此处所述(http://php.net/manual/en/function.file-get-contents.php

  

URL可以用作文件名   这个函数如果是fopen包装器   已启用。请参阅fopen()   有关如何指定的更多详细信息   文件名。

答案 2 :(得分:0)

你可以尝试:

$contents = implode('', file($myurl));

我经常使用它。