Php 检查最大执行时间和内存限制是否设置为所需值

Php 检查最大执行时间和内存限制是否设置为所需值,php,Php,我有以下php函数 function allocate_resources() { ini_set('max_execution_time',2700); //set maximum execution time of script ini_set('memory_limit','1024M'); //set memory_limit for script } 这个函数在许多函数中被调用来分配资源,所以我想检查一下 如果max\u execution\u time未设置为270

我有以下php函数

function allocate_resources()
{
    ini_set('max_execution_time',2700); //set maximum execution time of script
    ini_set('memory_limit','1024M'); //set memory_limit for script
}
这个函数在许多函数中被调用来分配资源,所以我想检查一下

如果max\u execution\u time未设置为2700,则将其设置为2700

如果未将内存限制设置为1024M,则将其设置为1024M

也欢迎任何更好的解决方案。

使用ini\u get()

(PHP4、PHP5、PHP7)

获取配置选项的值

e、 g.
$max_exec_time=ini_get('max_execution_time')

使用

$max_time = ini_get("max_execution_time");
$memory_limit = ini_get('memory_limit');
要获得
最大执行时间
内存限制
。如果
,则使用
,检查这些值是否已设置,如果未设置,则应用您的值

获取
内存\u限制

$memory_limit = ini_get('memory_limit');
if (preg_match('/^(\d+)(.)$/', $memory_limit, $matches)) {
    if ($matches[2] == 'M') {
        $memory_limit = $matches[1] * 1024 * 1024; // nnnM -> nnn MB
    } else if ($matches[2] == 'K') {
        $memory_limit = $matches[1] * 1024; // nnnK -> nnn KB
    }
}

应该注意的是
ini\u集('max\u execution\u time',2700)
设置时间限制(2700)不是完全同义的,因为
set\u time\u limit()
会将计数器“重置”为0,而
ini\u set()
则不会。

谢谢@Sinto,如何检查
如果(ini\u get(“memory\u limit”)<1024M)
并避免
PHP解析错误:语法错误,我函数中意外的'M'
值是硬编码的,如果(ini_get(“memory_limit”)<1048576){ini_set('memory_limit','1024M');}
Ya,您可以直接使用它