php - 文件处理程序 cron 作业需要 sleep 才能无错误运行

标签 php file-io fopen

以下代码每 36 小时随机中断一次。 info.txt 的正确性是有保证的。 $handlewhile 行之间的简单 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/

相关文章:

c - 如何从 char * 切换到 const char *[beaglebone 中的 pwm]?

c - 如何找到二进制文件的结尾?

php - 在 SELECT 语句中的单词左右添加空格

php - 在 PHP 中扩展父类是否需要包含该类的文件?

linux - 我想使用 shell 脚本 linux 在文件中写入一行

c - 将文件读入结构体

php - 在 RHEL 6 上编译 `mysql_pdo` 驱动程序(无法访问互联网,没有 `yum install` )

php - 使用 file_get_contents vs curl 获取文件大小

c - 输入多次写入输出文件 (C)

c - 从文件中读取行不返回全部