Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP5 giving无法打开流:使用fopen时HTTP请求失败错误_Php_Fopen - Fatal编程技术网

PHP5 giving无法打开流:使用fopen时HTTP请求失败错误

PHP5 giving无法打开流:使用fopen时HTTP请求失败错误,php,fopen,Php,Fopen,这个问题似乎在谷歌和这里的任何地方都曾被讨论过,但我还没有找到解决方案 一个非常简单的fopen给了我一个 PHP警告:fopen():无法打开流:HTTP请求失败!“ 我正在获取的URL并不重要,因为即使在我获取它时也不起作用。完全相同的脚本在不同的服务器上工作。失败的是Ubuntu 10.04和PHP 5.3.2。这在我的脚本中不是问题,这在我的服务器中是不同的,或者可能是PHP中的错误 我尝试在php.ini中使用用户代理,但没有成功。我的allow\u url\u fopen设置为On

这个问题似乎在谷歌和这里的任何地方都曾被讨论过,但我还没有找到解决方案

一个非常简单的fopen给了我一个

PHP警告:fopen():无法打开流:HTTP请求失败!“

我正在获取的URL并不重要,因为即使在我获取它时也不起作用。完全相同的脚本在不同的服务器上工作。失败的是Ubuntu 10.04和PHP 5.3.2。这在我的脚本中不是问题,这在我的服务器中是不同的,或者可能是PHP中的错误

我尝试在php.ini中使用用户代理,但没有成功。我的allow\u url\u fopen设置为On


如果您有任何想法,请放心!

检查您的php.ini配置是否设置为允许fopen打开外部URL:

allow_url_fopen "1"

听起来您的配置不允许使用文件函数,这在现在很常见,因为存在安全问题。如果您有可用的cURL库,我建议您尝试一下


我不确定这是否是问题所在,但我知道在过去,我在使用fopen打开url时遇到过问题,通常是由于php.ini的allow_url_fopen或其他未知的安全设置


你可能想试试PHP,这对我来说很有用,通过谷歌搜索你会很容易找到一个例子。

检查你的
phpinfo
输出-http是否在
注册的PHP流下出现?

你得到的是“http请求失败”吗“没有进一步的细节?套接字超时可能已过期。默认设置为60秒。请参见:

您能做一个
wget吗http://www.google.ca
是否从命令行?
fopen()
是否不再提供任何错误信息?您可以执行fopen('173.194.43.104')吗?(那是google.ca的ip)也许DSN不能被那个服务器上的PHP访问?@Pekka是的,我能找到这个问题way@Viper_Sb:没有区别DNS工作正常,其他一切都是,我可以将wget或lynx连接到Web服务器,这只是Fopent这就是为什么我说PHP可能无法访问它,它可能工作得很好,但PHP无法访问它。在我的Ubuntu安装中,默认情况下,它设置为“开”,使用
phpinfo()创建一个测试PHP文件行。搜索“curl”并查看它是否已启用。好的,我看到你编辑了你的文章,该版本正在运行,我将在我的脚本中尝试。@mickey如果这在你的脚本中对你有效,请继续并接受这个答案!还在努力解决这个问题。。。我更想找到一个解决方案来解释为什么fopen函数不起作用,因为我有很多脚本使用这个函数。https、ftps、compress.zlib、compress.bzip2、php、file、glob、data、http、ftp、phar、zip完全相同的一个?奇怪。curl_error()给出了什么?
$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;