在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
函数定义: void set_time_limit ( int $seconds ) 设置允许脚本运行的时间,单位为秒。如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,或者是在php.ini的max_execution_time被定义的值,如果此值存在。 当此函数被调用时,set_time_limit()会从零开始重新启动超时计数器。换句话说,如果超时默认是30秒,同时,脚本中又设置了25秒,如 set_time_limit(20)。那么,脚本在超时之前可运行总共时间为45秒。
安全模式下, 该函数无效. set_time_limit()函数和配置指令max_execution_time仅仅只影响脚本本身的执行时间。任何时间运行程序的操作,在脚本执行系统调用,如使用system(),流操作,数据库查询等,不包括在确定的最大时间,该脚本已运行。这不是在Windows如此,因为测量的时间是真实的。
sleep()函数的效果根据操作系统不同而不同, linux下执行程序时的持续时间将会被忽略掉, windows下执行程序时的持续时间将被计算在内. 例子1: <?php if( !ini_get('safe_mode') ){ set_time_limit(25); } ?>
例子2: <?php set_time_limit(20); while ($i<=10) { echo "i=$i "; sleep(100); $i++; } ?> 说明: 在linux下, sleep不起作用; windows会报超时, 而不会有任何输出.
例子3: <?php $es = ini_get('error_reporting'); register_shutdown_function( "time_out_callback"); set_time_limit( 3 );//假设3秒超时 error_reporting( 0 );//屏蔽fatal error //模拟超时 while (true) { //echo connection_status()."<br/>"; } error_reporting($es);//恢复设置 function time_out_callback() { if(connection_status() == 2) { b(); } } function b() { echo 'hello world!'; } ?> 超时错误捕获.
|
2022-08-30
2022-08-15
2022-08-17
2022-11-06
2022-08-17
请发表评论