一尘不染

限制函数或命令PHP的执行时间

php

您好,可以仅将时间限制设置为命令或功能,例如:

function doSomething()
{
    //..code here..

    function1();

    //.. some code here..

}

我只想将时间限制设置为function1。

有退出set_time_limit,但我认为这将整个脚本的时间限制。有人有想法吗?


阅读 351

收藏
2020-05-29

共1个答案

一尘不染

set_time_limit()确实在全局运行,但是可以在本地重置。

设置允许脚本运行的秒数。如果达到此目的,脚本将返回致命错误。默认限制为30秒,如果存在,则为php.ini中定义的max_execution_time值。

调用时,set_time_limit()从零重新启动超时计数器。换句话说,如果超时是默认的30秒,并且在脚本执行后的25秒内执行了诸如set_time_limit(20)之类的调用,则该脚本将在超时之前运行总计45秒。

我尚未对其进行测试,但是您可以在本地进行设置,当您离开

<?php
set_time_limit(0);  // global setting

function doStuff()
{
    set_time_limit(10);   // limit this function
    //  stuff
    set_time_limit(10);   // give ourselves another 10 seconds if we want
    //  stuff
    set_time_limit(0);    // the rest of the file can run forever
}

// ....
sleep(900);
// ....
doStuff();  // only has 10 secs to run
// ....
sleep(900);
// ....

set_time_limit()
确定脚本已运行的最长时间时,不包括执行脚本之外发生的活动所花费的任何时间,例如使用system()进行系统调用,流操作,数据库查询等。
在测量的时间是真实的Windows上不是这样。

2020-05-29