【问题标题】:yii2 Fatal error: Out of memory (allocated 134217728) (tried to allocate 6291464 bytes)yii2致命错误:内存不足(分配134217728)(试图分配6291464字节)
【发布时间】:2018-07-10 06:57:34
【问题描述】:

我正在尝试从控制台和浏览器读取超过 30k 条记录的 csv。 当我从 yii2 的控制台 shell 脚本中使用它时,它工作正常。 但是当我使用浏览器时,它会显示错误。

致命错误:内存不足(分配134217728)(试图分配 6291464 字节)在 \backend\vendor\yiisoft\yii2-debug\LogTarget.php 上 第 123 行

即使我根据需要分配了更多内存,例如 512m。 但还是同样的问题。

【问题讨论】:

  • 尝试关闭 yii2-debug logger
  • "即使我分配了更多内存" 确保您编辑了正确的 php.ini 文件(用于您的服务器的文件,而不是 CLI 文件),然后重新启动您的服务器.
  • @Justinas :它不工作
  • @kerbholz:是的,我已经对正确的 php.ini 进行了更改并重新启动服务器,但仍然面临同样的问题。

标签: php apache yii2


【解决方案1】:

你可以分块这个文件,例如

$csv = new SplFileObject('data.csv');
$csv->setFlags(SplFileObject::READ_CSV);

foreach(new LimitIterator($csv, 0, 500) as $line){
   //work with $line
}

【讨论】:

    猜你喜欢
    • 2018-01-14
    • 2014-04-04
    • 2011-09-12
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 2014-05-27
    • 1970-01-01
    相关资源
    最近更新 更多