我有以下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_execution_time 设置为 2700 ,则将其设置为 2700
如果未将 memory_limit 设置为 1024M ,则将其设置为 1024M
也欢迎任何更好的解决方案。
答案 0 :(得分:0)
使用 ini_get()
来自http://php.net/manual/en/function.ini-get.php
(PHP 4,PHP 5,PHP 7)
获取配置选项的值
例如$max_exec_time = ini_get('max_execution_time');
答案 1 :(得分:0)
使用
$max_time = ini_get("max_execution_time");
$memory_limit = ini_get('memory_limit');
获取max_execution_time
和memory_limit
。然后使用if
检查是否设置了这些值(如果不适用的话)。
获取memory_limit
:
$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_set('max_execution_time', 2700);
和set_time_limit(2700);
并非完全同义,因为set_time_limit()
将计数器“重置”为0,其中{{1} }不会。