您可以使用laravel的文件系统和Storage门面来实现此目的:
$files = Storage::disk('public')->files('path/to/files');
foreach ($files as $file) {
$contents = Storage::disk('public')->get($file);
// Save contents to DB;
}
您还可以通过构建一系列内容来分批处理它们
$files = Storage::disk('public')->files('path/to/files');
$contents = [];
$toMove = [];
foreach ($files as $file) {
$content = Storage::disk('public')->get($file);
$slice = preg_split("/\\r\\n|\\r|\\n/", $content);
$contents[] = [
'metadata' => $slice[0],
'data1' => $slice[1],
'data2' => $slice[2],
'data3' => $slice[3],
];
$toMove[] = $file;
if (count($contents) === 10) {
DB::table('informations')->insert($contents);
foreach($toMove as $file) {
Storage::disk('public')
->move($file , 'done/'.Str::of($file)->after('/'));
}
$contents = [];
$toMove = [];
}
}
if (count($contents)) {
DB::table('informations')->insert($contents);
foreach($toMove as $file) {
Storage::disk('public')
->move($file , 'done/'.Str::of($file)->after('/'));
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句