我正在使用adwords报告api来获取所有adwords帐户的所有广告和关键字信息。目前账户数为1363。报告api生成一个CSV,我正在将其解析为数组。下面是函数。在解析一个好的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);
我相信,在给定的代码中有一个内存泄漏,它正在吞噬所有的内存。
如果有任何解决方案,请提出建议。
要更改一个特定脚本的内存限制,请在脚本顶部包含这样一行:
ini_set("memory_limit","12M");
您还可以通过在服务器的PHP.ini文件中添加这样一行来对服务器上运行的所有PHP脚本进行永久更改:
memory_limit=12M