在PHP中检查memory_limit

“ memory_limit”是允许单个PHP脚本使用的最大服务器内存量。在比较内存阈值之前,需要转换该值。

例如-64M转换为64 * 1024 *1024。此后,完成比较并打印出结果。

<?php
$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
   }
}
$ok = ($memory_limit >= 640 * 1024 * 1024); // at least 64M?
echo '<phpmem>';
echo '<val>' . $memory_limit . '</val>';
echo '<ok>' . ($ok ? 1 : 0) . '</ok>';
echo '</phpmem>';

输出将是该特定环境设置的内存限制。