php – filehandler cron job需要睡眠以免错误运行

以下代码每36小时随机中断一次.确保info.txt的正确性.一个简单的印刷’测试’;或睡觉(1);在$handle的行之间,虽然解决问题,但为什么呢?

$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将包含文件的内容,因此您需要将字符串拆分为数组,可能使用newline作为分隔符…只是猜测不知道文件的内容:)

上一篇:c文件函数总结


下一篇:php – filemtime在修改文件之前和之后返回相同的值