PHP Array Building避免超出MAX RAM

时间:2014-08-14 08:14:45

标签: php arrays ram

我正在创建一个成功的URL数组并解析存储在临时目录中的文件。这很好,直到阵列变大并最终导致最大ram超过。处理此流程的最佳解决方案是什么,以便无论CSV中的URL数量多少都可以处理?

if($fh = fopen( ($fileName) ? $fileName : $this->file->getTempName() , 'r'))
{
     // iterate through all lines of file
     while($line = fgetcsv($fh, self::MAX_READ, self::DELIMITER)){

     $this->addUrl(array(
        self::SOURCE => $line[self::FROM_COLUMN],
        self::DESTINATION => $line[self::TO_COLUMN],
        self::EXPIRY_TIME => $line[self::DATE_COLUMN]
     ));

     }

     fclose($fh);
}

public function addUrl( $url)
{
    $this->urls[] = $url;
}

在我的处理器类中:

foreach($urls as $entry)
{
   // new url instance
   $url= new Url();
   $url->source = $entry[CSV::SOURCE];
   $url->destination= $entry[CSV::DESTINATION];
   $url->save();

}

0 个答案:

没有答案