zha*_*eng 2 php time timeout max execution
我期待一些错误,如500或超时页面,代码如下:
<?php
ini_set('max_execution_time',5);
set_time_limit(5);
echo 'start';
sleep(10);
echo '<br/>hi';
Run Code Online (Sandbox Code Playgroud)
但是,我得到这样的东西:
start hi
我做错了吗?
我想要的只是在第5秒超时时看到脚本停止,所以不应该执行第二个回声(我知道这是一个非常奇怪的要求)
任何人都可以轻视,谢谢.
PS:似乎sleep()部分非常分散注意力,我怎么改变这样的代码:
<?php
ini_set('max_execution_time',5);
set_time_limit(5);
echo 'start';
for($i=1;$i<100000000;$i++){
if($i%100==2) echo $i;
else echo '--';
}
echo '<br/>hi';
Run Code Online (Sandbox Code Playgroud)
根据php.net中的这个评论你必须使用unix ... "请注意,在Linux下,睡眠时间被忽略,但在Windows下,它算作执行时间." (在Unix/Linux中,睡眠不会被考虑作为执行时间的一部分.)
另外,要使其超时,只需循环永久
<?php
while (true) {
// i'll error out after max_execution_time
}
Run Code Online (Sandbox Code Playgroud)
要查看它有多长,您可以使用microtime查找执行时间或查询您刚刚设置的max_execution_time变量.
$max_time = ini_get("max_execution_time");
echo $max_time
?>
Run Code Online (Sandbox Code Playgroud)
更新 使用更新的代码,输出符合预期.
Fatal error: Maximum execution time of 5 seconds exceeded in newfile.php on line 7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1833 次 |
| 最近记录: |