4

以下代码每 36 小时随机中断一次。info.txt 的正确性是有保证的。一个简单的print 'test';sleep(1);介于$handle和之间的while问题解决了这个问题,但为什么呢?

$handle = fopen("http://www.domain.do/info.txt", "r");
while (!feof($handle)) {
  // [do stuff]
}
fclose ($handle);

代码由 cron 作业运行。

4

2 回答 2

2

添加 sleep() 或一些延迟将使 fopen 有时间从该位置检索文件......我假设“随机”效应可能是网络上的流量导致检索比平时稍长。

您可以尝试使用 cURL 来检索数据:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.domain.do/info.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);

$output将包含文件的内容,因此您需要将字符串拆分为一个数组,可能使用换行符作为分隔符......只是猜测不知道文件的内容:)

于 2012-10-31T10:40:19.700 回答
0

非常感谢。这项工作在短期内使用 curl 无错误。我也会长期检查它。7天后我会给你反馈。

于 2012-11-12T15:29:57.663 回答