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

PHP函数: set_time_limit

WBOY
Freigeben: 2016-06-23 14:33:34
Original
1669 Leute haben es durchsucht

函数定义:   

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);}?>
Nach dem Login kopieren

例子2:

<?phpset_time_limit(20);while ($i<=10){  echo "i=$i ";  sleep(100);  $i++;}?>
Nach dem Login kopieren

说明: 在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!';}?>
Nach dem Login kopieren

超时错误捕获.

 

 

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage