Home  >  Article  >  Backend Development  >  竟然后台自动执行,这是php5.5的更新吗?

竟然后台自动执行,这是php5.5的更新吗?

WBOY
WBOYOriginal
2016-06-23 13:43:53934browse

很简单的一段代码

header('Content-Type:text/html;charset=utf-8');date_default_timezone_set('PRC');set_time_limit(0);$date=date("H:i:s");while($date<'11:14:00') //这句测试时要调整一下{$date=date("H:i:s");file_put_contents("test.txt", $date);}


我用浏览器访问,按以前的经验如果运行后关闭浏览器,程序就应该停止了,除非使用ignore_user_abort(true);。
但这两天把系统环境更新成apache2.4+php5.5时,就发现了以上疑问,即使关闭浏览器程序任然运行,直到设定时间到为止。
是我以往理解的概念问题,还是更新后的设置问题,还是其他?


回复讨论(解决方案)

那你的经验是错误的!
按 php 的描述:
当远程用户点击 STOP 按钮后,脚本再次尝试输出数据时,PHP 将会检测到连接已被中断,并调用关闭触发函数。 

由于你的程序中没有输出,所以 php 不会检测到用户已离线,程序将继续运行

????器,php未?行完???行很正常。一直都是??的。

之前都??,卡在一?死循?了,要等php max_execution_time?期了才?止。


果然是我的问题,加了输出真的就停了,看来我以前有些ignore_user_abort都白加了...

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn