我正在训练一个PHP脚本作为一个表现良好的cron作业运行。为了逃避无限循环,我已经添加了set_time_limit
。
据我所知,PHP没有最终的子句功能。我希望有这样的功能来清理,比如在达到时间限制时取消链接文件。
实现这一目标的另一种方法是什么?
答案 0 :(得分:3)
布鲁斯·阿尔德里奇已经回答了,如何达到目标 我告诉你另一种方式:RAII pattern(不是说更好或更坏) 例如:
class AutoUnlinker
{
private $files;
public function OpenFile($filepath, $mode)
{
$handler = fopen($filepath, $mode);
$this->files[$filepath] = $handler;
return $handler;
}
public function __destruct()
{
if (!empty($this->files))
{
foreach ($this->files as $filepath => $handler)
{
if (!empty($handler)) fclose($handler);
if (file_exists($filepath)) unlink($filepath);
}
}
}
}
如果此类将用于打开文件,则所有文件将在脚本终止时关闭和取消链接。此示例专门针对您的问题 - 通常使用1个对象来访问1个资源。
答案 1 :(得分:0)
http://php.net/manual/en/function.register-shutdown-function.php
实际上,这不会在脚本超时运行。 和最好处理代码中无限循环的捕获。