set_time_limit回调?

时间:2011-05-16 01:07:34

标签: php

是否可以设置“回调函数”来执行某些操作,而不是在达到时间限制时返回错误?

4 个答案:

答案 0 :(得分:2)

您可以删除时间限制(set_time_limit(0)),然后跟踪PHP脚本开始执行的时间并与当前时间进行比较。

<?php

$startTime = microtime();

// Whatever you need to do...

// Place this where it needs to be in the context of your application.
if (microtime() - $startTime > 15000) { 
    // Time's up!
}

答案 1 :(得分:0)

我不这么认为......那种打破了函数的开头......我想如果你想做那样的事情,把它设置为0(没有时间限制)并跟踪时间不同的方式,并在X时间后做一些事情。

答案 2 :(得分:0)

正如其他人所说的那样。 如果您的脚本由于外部因素而超时(例如,它不会从单个函数调用中返回),那么您唯一的补救措施可能是使用pcntl_alarmpcntl_signal。虽然我不确定这些可以在sapi的其他CLI中使用。

答案 3 :(得分:0)

你可以尝试这个: http://www.php.net/register_shutdown_function

function shutdown()
{
    // This is our shutdown function, in 
    // here we can do any last operations
    // before the script is complete.

    echo 'Script executed with success', PHP_EOL;
}

register_shutdown_function('shutdown');