php超时时间
Posted Burning_Leaf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php超时时间相关的知识,希望对你有一定的参考价值。
php脚本的执行有三种状态:
- 0 - NORMAL(正常)
- 1 - ABORTED(异常退出)
- 2 - TIMEOUT(超时)
NORMAL 状态为正常执行,ABORTED状态为客户端终端链接,TIMEOUT状态为PHP执行时间超出时限。
那么问题来了:PHP的执行时限是多少呢?
PHP内部有一个计时器,默认的执行时间是30秒,这个值可以通过修改php.ini中的max_excution_time或httpd.conf设置中对应的“php_value max_execution_time”参数或使用PHP的set_time_limit()函数来更改。当脚本超时时就会退出。
不过有个问题需要注意一下:set_time_limit()函数只有在非安全模式下才能使用。
还有一个有意思的事情:
在客户端中断连接的时候可以设定PHP继续执行,因为有时候让脚本完整的运行会带来很多方便,即使没有远程浏览器接受脚本的输出。默认情况下远程客户端链接中断脚本即会退出,可以通过 php.ini 的ignore_use_abort 或 httpd.conf 中对应的 “php_value ignore_user_abort” 以及 PHP函数 ignore_user_abort() 控制脚本忽略用户退出,让脚本继续执行。不过这就可能会出现ABORTED、TIMEOUT两种状态同时存在的情况(PHP允许这两种状态同时存在),此时通过 connection_status() 函数检查脚本状态时返回的是3,并且通过 register_shutdown_function() 函数设置的程序关闭出发程序会被执行。
如果在远程客户端链接中断时就让脚本停止执行,并且你想在这一事件发生时执行特定的操作,那么你可以使用 register_shutdown_function() 函数设置。
以上是关于php超时时间的主要内容,如果未能解决你的问题,请参考以下文章