【发布时间】:2012-02-28 17:35:48
【问题描述】:
我们的服务器上运行了一个 cron-job,它从 MeteoConsult 下载数据,这是一些荷兰天气报告公司......事情......
无论如何,基本上脚本通过 cURL 使用 FTP 下载 XML 文件,然后使用 SimpleXML 进行解析。一两个星期前,它决定随机死亡,扼杀了我们观看天气的乐趣。我一无所知。 FTP数据是正确的并且已经过验证。 Meteo 服务器不会阻止运行 cron-job 的服务器的 IP 地址。
为什么开发人员使用 cURL 通过 FTP 下载文件对我来说确实是个谜。当我在不同的服务器上运行脚本时,它似乎可以工作。
有了这些信息,我假设要么我们使用的是“老式”方式,并且无法使用新的 cURL / PHP 版本,但我找不到任何相关信息,或者我们的服务器的防火墙阻止了连接。
这是(部分)脚本:
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"ftp://username:password@ftp.meteocon.nl/file.xml");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 300);
curl_setopt($curl, CURLOPT_FTP_USE_EPSV, 0);
$xml = curl_exec($curl);
$status = curl_getinfo($curl);
curl_close($curl);
// At this point, $xml is NULL
这个脚本有什么问题吗?如果没有,你们知道问题可能是什么吗?
PHP version: 5.2.12
libcurl version: 7.20.0
非常感谢。
【问题讨论】:
-
您是否尝试过检查错误? php.net/manual/en/function.curl-error.php
-
@Znarkus 好点!
string(24) "couldn't connect to host"。仍然没有完全解释为什么。 -
你能通过命令行
curl或ftp从服务器连接到FTP吗? -
@Znarkus 问题已解决,但我还不能删除问题。在这一点上,我也不能将自己的答案标记为正确答案。我得等2天。看我的回答。
-
没问题,等2天接受吧:)