fopen无法打开远程URL

时间:2012-09-12 14:14:27

标签: php fopen

我在远程网址上遇到fopen的错误。

我必须将一些xml数据发布到另一台服务器:因为我希望避免安装curl库的问题,所以我更喜欢使用流。

这是我的代码:

$url = 'http://test.mysite.com/index.php?foo=bar';
$params = array('http' => array('method' => 'POST','content' => $data));
$ctx = stream_context_create($params);
$fp  = fopen($url, 'rb', false, $ctx);

if (!$fp) {
     throw new Exception("Problem with $url, $php_errormsg");
}
$response = stream_get_contents($fp);

我在本地计算机上测试过(Windows,PHP 5.3.8)并且外观很好,现场测试(Linux PHP 5.3.13)并且没问题,然后我在另一台PC上进行本地测试(Windows 5.2.9)。登记/> 在最后一种情况下,fopen会挂起,直到超时。

allow_url_fopen已启用,防火墙应该没有任何问题(基本上我是在呼唤自己:localhost/mysite来自localhost/mysite

由于我的一些客户报告了此错误,我希望进一步调查 有什么建议吗? PHP 5.2中是否存在错误或其他内容?

1 个答案:

答案 0 :(得分:1)

您网址的语法无效 替换:

$url = 'http://test.mysite.com?foo.php';

使用:

$url = 'http://test.mysite.com/?foo.php';