【发布时间】:2011-03-23 04:18:47
【问题描述】:
我有一个从远程服务器获取一些 XML 内容的 CURL 代码。我在我的本地主机(Windows 上的 XAMPP)上得到了预期的输出。但是从实时站点(托管在 Linux 上),我收到 CURL 错误:'couldn't connect to host'。
function DownloadUrl($Url, $p){
// 是否安装了 curl? if (!function_exists('curl_init')){ die('CURL 没有安装!'); }
// create curl resource
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $p);
curl_setopt ($ch, CURLOPT_POST, 1);
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $output contains the output string
$output = curl_exec($ch);
if($output === false)
echo 'Curl error: ' . curl_error($ch);
else
print $output;
// close curl resource to free up system resources
curl_close($ch);
}
【问题讨论】:
-
您是否尝试过从 linux 服务器 ping 主机?您是否尝试过从您的 linux 服务器获取主机?如果是,结果ok吗?
-
这也应该被标记为 PHP。
-
了解您的远程环境也很有用,即共享主机、VPS 等。一些共享提供商不允许您使用 curl 从其他站点提取内容。如果您使用的是 VPS,您可能需要检查是否有适当的 iptables 规则来允许您进行出站连接。