什么是停止在循环中主动在服务器上运行的ignore_user_abort的最佳解决方案? (PHP)
基本上试图阻止一个无限循环的PHP脚本,因为设置了ignore_user_abort并且脚本已经执行而不会停止..
简单夸张的例子:
<?
ignore_user_abort(true);
set_time_limit(0);
$test = 1;
while ($test < 1000000000000000 )
{
sleep(1);
$test = $test+1;
}
?>
答案 0 :(得分:2)
似乎connection_aborted
正是您要找的?
<?php
ignore_user_abort(TRUE);
set_time_limit(0);
while (TRUE) {
if(connection_aborted()) {
break;
}
sleep(5);
}
// do some stuff now that we know the connection is gone
?>
或者,您可以针对预定义的CONNECTION_ABORTED
常量检查connection_status
:
if(connection_status() == CONNECTION_ABORTED)
{
break;
}
中获得良好的纲要
答案 1 :(得分:1)
//this will stop the script after running for 30 sec
set_time_limit(30);