首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHP中检查memory_limit

在PHP中检查memory_limit
EN

Stack Overflow用户
提问于 2012-04-18 19:47:48
回答 6查看 135.4K关注 0票数 49

我需要在我的脚本安装程序中检查memory_limit是否至少是64M。这只是PHP代码的一部分,应该可以工作,但可能是因为这个"M“,它没有正确地读取值。如何解决这个问题?

代码语言:javascript
复制
  //memory_limit
    echo "<phpmem>";
    if(key_exists('PHP Core', $phpinfo))
    {
        if(key_exists('memory_limit', $phpinfo['PHP Core']))
        {
            $t=explode(".", $phpinfo['PHP Core']['memory_limit']);
            if($t[0]>=64)
                $ok=1;
            else
                $ok=0;
            echo "<val>{$phpinfo['PHP Core']['memory_limit']}</val><ok>$ok</ok>";
        }
        else
           echo "<val></val><ok>0</ok>";
    }
    else
        echo "<val></val><ok>0</ok>";
    echo "</phpmem>\n"; 
EN

回答 6

Stack Overflow用户

发布于 2019-01-27 06:41:51

正在检查命令行:

代码语言:javascript
复制
php -i | grep "memory_limit"
票数 66
EN

Stack Overflow用户

发布于 2015-03-11 12:31:56

这里有另一种更简单的方法来检查。

代码语言:javascript
复制
$memory_limit = return_bytes(ini_get('memory_limit'));
if ($memory_limit < (64 * 1024 * 1024)) {
    // Memory insufficient      
}

/**
* Converts shorthand memory notation value to bytes
* From http://php.net/manual/en/function.ini-get.php
*
* @param $val Memory size shorthand notation string
*/
function return_bytes($val) {
    $val = trim($val);
    $last = strtolower($val[strlen($val)-1]);
    $val = substr($val, 0, -1);
    switch($last) {
        // The 'G' modifier is available since PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }
    return $val;
}
票数 13
EN

Stack Overflow用户

发布于 2017-08-19 12:46:56

非常古老的帖子。但我就把这个留在这里:

代码语言:javascript
复制
/* converts a number with byte unit (B / K / M / G) into an integer */
function unitToInt($s)
{
    return (int)preg_replace_callback('/(\-?\d+)(.?)/', function ($m) {
        return $m[1] * pow(1024, strpos('BKMG', $m[2]));
    }, strtoupper($s));
}

$mem_limit = unitToInt(ini_get('memory_limit'));
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10208698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档