很简单的一段代码
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都白加了...