设置php max_execution_time的正确方法

时间:2015-11-25 04:39:07

标签: php config

我尝试在php设置执行时间,但似乎无法正常工作。

我试过这个。

<?php

function secondsToTime($s)
{
    $h = floor($s / 3600);
    $s -= $h * 3600;
    $m = floor($s / 60);
    $s -= $m * 60;
    return $h.':'.sprintf('%02d', $m).':'.sprintf('%02d', $s);
}
$a = microtime(true);

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

ini_set('max_execution_time', 3);
sleep(2);
echo 'oke';

sleep(3);
echo 'yes';
$b = microtime(true);

echo secondsToTime($b-$a);

?>

但是当我尝试时,它显示11秒,而不是错误或其他。

为什么我的代码没有错误?我把时间设定为6秒。但我的整个过程是11秒? 我是否还需要在php.ini上定义它? 谢谢。

2 个答案:

答案 0 :(得分:1)

set_time_limit设置最长执行时间(以秒为单位)。如果设置为零,则不会施加时间限制

set_time_limit(0);
  

默认情况下,PHP脚本的最长执行时间设置为30   秒。如果脚本运行时间超过30秒,PHP将停止运行   脚本并报告错误。你可以控制PHP的时间量   允许脚本通过更改max_execution_time指令来运行   你的php.ini文件。

答案 1 :(得分:1)

它告诉我这个错误

Fatal error: Maximum execution time of 6 seconds exceeded

您没有收到此错误,因为您的服务器上显示错误&#34;显示错误&#34;没有。

我是否需要在我的php.ini上定义它?

也不需要在php.ini上定义它。你可以像现在一样动态设置它。