Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决PHPExcel内存不足错误?_Php_Phpexcel - Fatal编程技术网

如何解决PHPExcel内存不足错误?

如何解决PHPExcel内存不足错误?,php,phpexcel,Php,Phpexcel,我正在使用生成Excel报告: 我有一份大约600kb的报告 报告共15页 每张图纸包含大约200行和12列 一页包含公式 我正在使用PHPExcel进行阅读和写作 我使用的是亚马逊免费网络层服务器 我在服务器中有大约600MB的RAM 问题是写入excel文件的进程被终止(由于内存不足) 我该怎么办?是否还有其他Excel库可用?我想要一个具有读写功能的库 有没有其他方法可以解决内存不足的问题?我很难相信通过PHPExcel运行的600kb文件会占用600MB的内存。可能是分配给PHP的内

我正在使用生成Excel报告:

  • 我有一份大约600kb的报告
  • 报告共15页
  • 每张图纸包含大约200行和12列
  • 一页包含公式
  • 我正在使用PHPExcel进行阅读和写作
  • 我使用的是亚马逊免费网络层服务器
  • 我在服务器中有大约600MB的RAM
问题是写入excel文件的进程被终止(由于内存不足)

我该怎么办?是否还有其他Excel库可用?我想要一个具有读写功能的库


有没有其他方法可以解决内存不足的问题?

我很难相信通过PHPExcel运行的600kb文件会占用600MB的内存。可能是分配给PHP的内存耗尽了。您可以使用以下方法之一增加PHP脚本可用的内存:

  • 内存限制=16M
    添加到php.ini文件(如果您有访问权限,建议使用) 通过root访问,您可以在基于Linux/Unix的系统中使用sed util,以增加64M的内存。别忘了正确定位php.ini文件!
    sed-i的/memory\u limit=.*/memory\u limit=64M/'/etc/php5/apache2/php.ini
  • 添加
    ini_集('memory_limit','16M')到您的php脚本
  • php\u value memory\u limit 16M
    添加到项目根文件夹中的.htaccess文件中

我没有使用web界面..我是从命令行运行phpexcel..它只是从本地数据库获取数据并将其写入excel文件..我没有在任何地方使用web,因此“将php\u值内存\u limit 16M添加到.htaccess文件”没有意义…那么对于commad线路访问,我也必须设置内存限制?我在本地机器上测试了代码,大约需要258MB内存。这是我的内存测试代码。好的,但是您仍然可以使用前两种方法中的任何一种,当您从命令行运行脚本时,您也可以使用以下标志启动它们
-d memory_limit=300M
,但在我的cli/php.ini文件中,memory_limit设置为-1,这也表示脚本可能消耗的最大内存量(128MB);内存限制=-1解决方案是什么?memory_limit=-1意味着php不会施加任何内存限制。那么下一步应该做什么呢?你可以,也许有一些地方可以改进。对我来说,258MB似乎仍然很多。