动态内存分配PHP

时间:2019-04-19 13:22:29

标签: php memory

我正在将ImageMagick库用于正在编写的图像压缩脚本。由于应该在单独的文件夹中处理大量图像,因此在分配内存时遇到了一些麻烦。

如果默认内存限制不足以处理图像,是否可以分配更多内存?

注意:我不想在脚本运行之前设置限制。

1 个答案:

答案 0 :(得分:0)

我找到了一个看起来不错的原始解决方案。在研究了php手册之后,我编写了这段代码来实现动态内存分配任务。 这是代码:

NB:memInfo函数代码段摘自php手册页上有关memory_get_usage()页的评论

<?php 

if( memInfo(memory_get_usage(true)) > '128MB' ){
    ini_set('memory_limit', '256M');
}

function memInfo( int $size ){
    $unit = ['B','KB','MB','GB','TB','PB'];
    return @round( $size / pow(1024, ($i = floor(log($size,1024)))),2).$unit[$i];
}