以下代码每 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 作业运行。
添加 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
将包含文件的内容,因此您需要将字符串拆分为一个数组,可能使用换行符作为分隔符......只是猜测不知道文件的内容:)
非常感谢。这项工作在短期内使用 curl 无错误。我也会长期检查它。7天后我会给你反馈。