在PHP中解析CSV导致内存不足

时间:2016-07-30 08:11:20

标签: php

我正在使用adwords reporting api获取所有adwords帐户的所有广告和关键字信息。目前帐号为1363.报告api生成一个CSV,我将其解析为Array,下面是函数。在解析好的1180帐户后,它会出错

  

致命错误:允许的内存大小为536870912字节(尝试分配262144字节)。

我已将内存设置为512MB(我相信很多)。

错误来自此行

$line_of_text[] = fgetcsv($file_handle, 1024);

私有函数convertCSVtoArray($ csvFile){

    try {
        $file_handle = fopen($csvFile, 'r');
        while (!feof($file_handle) ) {
            $line_of_text[] = fgetcsv($file_handle, 1024);
        }
        fclose($file_handle);
        return $line_of_text;
    } catch (Exception $e) {
        log_message('Exception in convertCSVtoArray()', $e);
        throw new Exception('Exception in convertCSVtoArray => '.$e);
    }
}

从方法

调用上述函数
$data = $this->convertCSVtoArray($filePath);

我相信,在给定代码中某处存在内存泄漏,这会占用所有内存。

请建议是否有任何解决方案。

1 个答案:

答案 0 :(得分:0)

要更改某个特定脚本的内存限制,请在脚本顶部添加如下所示的行:

的ini_set( “memory_limit的”, “12M”);

您还可以通过在服务器的php.ini文件中添加这样的行来对服务器上运行的所有PHP脚本进行永久性更改:

memory_limit = 12M

相关问题