以下代码每 36 小时随机中断一次。 info.txt 的正确性是有保证的。 $handle
和 while
行之间的简单 print 'test';
或 sleep(1);
工作围绕这个问题,但为什么?
$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
将包含文件的内容,因此您需要将字符串拆分为一个数组,可能使用换行符作为分隔符...只是猜测不知道文件的内容:)
关于php - 文件处理程序 cron 作业需要 sleep 才能无错误运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13006431/