Heim  >  Artikel  >  Backend-Entwicklung  >  PHP函数: set_time_limit

PHP函数: set_time_limit

WBOY
WBOYOriginal
2016-06-23 14:33:341638Durchsuche

函数定义:   

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: 

<?phpif( !ini_get('safe_mode') ){  set_time_limit(25);}?>

 

例子2:

<?phpset_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!';}?>

超时错误捕获.

 

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:关于propel--PHPNächster Artikel:转载: PHP socket