这是因为php只有在给客户端发送内容的时候才会检测是否客户端断开了连接,否则会一直执行。ignore_user_abort
函数的作用是设置检测到客户端断开后也继续执行。
所以,并不是只要调用就会直到结束。可以执行下下面的代码看看,浏览器断开后确实就终止了
<?php$file=__DIR__.'/timeout.txt';for($i=0;$i<20;$i++){//输出内容给客户端,可以检测到客户端是否已经断开echo".";ob_flush();flush();$fopen=fopen($file,'a+');fwrite($fopen,$i.':'.time().PHP_EOL);sleep(1);}fclose($fopen);