PHP循环遍历数组然后删除当前密钥

时间:2013-12-11 17:24:02

标签: php loops foreach

我有以下简单的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再次启动时,它不会从头开始重复相同的行

那么如何在我打印其值后不立即删除文件中的每一行?

1 个答案:

答案 0 :(得分:0)

看起来你想要的是回显test.txt的每一行并写出一个test.txt文件,其中包含你尚未回显的所有行。 问题似乎源于您遇到最大执行时间限制这一事实。 如果您无法在php.ini中更改max_execution_time,我建议您查看set_time_limit()

如果两者都不是一个选项,因为你因为超过max_execution_time而无法在终止之前进行清理,你必须在你的循环中反复写入文件,这不是很愉快,但应该继续工作