使用ini_set("memory_limit"," - 1")并且仍然没有内存

Mat*_*ght 20 php memory apache easyphp limit

我正在处理一个旧的数据库php数组到一个新的数据库.数据.php文件总共大约220 MB.

我已在脚本中插入这些行,以便它可以正常运行:

ini_set("memory_limit", "-1");
set_time_limit(0);
Run Code Online (Sandbox Code Playgroud)

这就是我包含产品的方式:

// The exports made by PHPMYADMIN, exported as PHP-Array
require_once 'export/tx_ttproductsv2_products.php';
require_once 'export/tx_ttproductsv2_keyword.php';
require_once 'export/tx_ttproductsv2_keywords_in_products.php';
require_once 'export/tx_ttproductsv2_typebook.php';
require_once 'export/tx_ttproductsv2_typegospel7.php';
require_once 'export/tx_ttproductsv2_typemedia.php';
Run Code Online (Sandbox Code Playgroud)

当脚本试图要求它们时,我收到此错误:

PHP致命错误:内存不足(分配880541696)(试图分配469762048字节)......

我在x64 Win 7 SP1上运行了本地EasyPHP安装.我有6 GB的内存,Intel i5.

如何在没有内存错误的情况下让PHP运行整个脚本?

M.M*_*.M. 18

内存限制来自操作系统,而不是来自PHP本身.

您的脚本分配了800MB,并且正在尝试进一步分配500MB

尝试使用64位PHP在64位操作系统上运行该脚本.

  • 最好的解决方案是您获取数据并以块的形式处理它,而不是将所有数据加载到内存中然后进行处理. (5认同)