我有以下简单的php循环:
<?php
$lines = file('test.txt');
foreach($lines as $key => $val) {
echo $val;
unset($lines[$key]);
file_put_contents('test.txt',$lines);
}
?>
我可以在循环之后放置file_put_contents
函数,但问题是由于我无法配置的max execution time
,脚本可能随时失败。
脚本在循环中停止了一段时间,所以我使用cron job运行文件,并希望循环尽可能多的行并删除循环的行,这样当cron再次启动时,它不会从头开始重复相同的行
那么如何在我打印其值后不立即删除文件中的每一行?
答案 0 :(得分:0)
看起来你想要的是回显test.txt的每一行并写出一个test.txt文件,其中包含你尚未回显的所有行。 问题似乎源于您遇到最大执行时间限制这一事实。 如果您无法在php.ini中更改max_execution_time,我建议您查看set_time_limit()。
如果两者都不是一个选项,因为你因为超过max_execution_time而无法在终止之前进行清理,你必须在你的循环中反复写入文件,这不是很愉快,但应该继续工作