PHP5 giving failed to open stream: HTTP request failed error when using fopen
这个问题似乎过去在Google和此处的所有地方都曾讨论过,但我还没有找到解决方法。
一个非常简单的fopen给我一个
PHP Warning: fopen(http://www.google.ca): failed to open stream: HTTP request failed!".
我获取的URL不重要,因为即使我获取http://www.google.com,该URL也无法使用。完全相同的脚本可在其他服务器上运行。一个失败的是Ubuntu 10.04和PHP 5.3.2。这不是我的脚本中的问题,它与服务器中的内容有所不同,或者可能是PHP中的错误。
我尝试在php.ini中使用user_agent,但没有成功。我的allow_url_fopen设置为On。
如果您有任何想法,请放心!
这听起来像您的配置不允许使用文件功能,由于安全问题,这在当今很普遍。如果您有可用的cURL库,我建议您尝试一下。
PHP:cURL
1 2 3 4 5 6 7 | $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"http://www.google.ca/"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $file = curl_exec($ch); curl_close($ch); echo $file; |
我完全不确定这是否是问题,但我知道过去我经常用php.ini的allow_url_fopen或其他方式在使用fopen打开URL时遇到问题未知的安全设置
您可能想尝试在PHP中使用cURL,这通常对我有用,通过对它进行谷歌搜索,您会很容易找到一个示例。
检查您的php.ini配置是否设置为允许fopen打开外部URL:
1 | allow_url_fopen"1" |
http://www.php.net/manual/zh-CN/filesystem.configuration.php#ini.allow-url-fopen
您是否收到" HTTP请求失败",而没有更多详细信息?套接字超时可能已过期。默认为60秒。请参阅:http://php.net/manual/en/function.socket-set-timeout.php
检查您的