Storage::disk('local')
->append('/newsletter_lists/'.$contact_file_name.'.csv',
$contact->email.','.$contact->salutation.','.$contact->lastname.','.$contact->unsubscribelink.','.$contact->bonus
);
这是Laravel中的代码,该代码正在foreach循环(从数据库中批量加载)中写入csv文件。
但是据我所知,append()
方法每次都会打开文件,将内容加载到内存中,添加新行并再次保存文件,这需要大量记录(65 000),需要很长时间时间。
我正在尝试找到一种方法来附加到文件的末尾,而不在可能的情况下将内容加载到内存中,或者我在这里采用了错误的方法?
答案 0 :(得分:0)
我接受了@ d3L的建议,并使用普通的php将其追加到文件中,而不使用laravel的append()方法,该方法每次需要添加一行时都会加载内容。
$file = fopen(Storage::disk('local')->path('test.csv'), "a+b");