>  기사  >  백엔드 개발  >  竟然后台自动执行,这是php5.5的更新吗?

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

WBOY
WBOY원래의
2016-06-23 13:43:53933검색

很简单的一段代码

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都白加了...

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.