Код: (У меня нет Laravel для тестирования, но я тестировал с сырым php)
$f = public_path('MYCSV.csv');
$rows = file($f);
array_pop($rows); // remove final element/row from $array
file_put_contents($f, implode($rows)); // convert back to string and overwrite file
Теперь, если вы хотите добавить новую строку в конец вашего файла, вы будетепросто нужно вставить новые данные в виде строки через запятую (с завершающим символом новой строки) в массив $rows
.
Если у вас есть файл .csv с таким содержимым:
Sally Whittaker,2018,McCarren House,312,3.75
Belinda Jameson,2017,Cushing House,148,3.52
Jeff Smith,2018,Prescott House,17-D,3.20
Sandy Allen,2019,Oliver House,108,3.48
Тогда массив $rows
после вызова array_pop()
будет иметь вид:
array (
0 => 'Sally Whittaker,2018,McCarren House,312,3.75
',
1 => 'Belinda Jameson,2017,Cushing House,148,3.52
',
2 => 'Jeff Smith,2018,Prescott House,17-D,3.20
')
* Обратите внимание, что символы новой строки не теряются при использовании file()
, поэтому «склейка» отсутствуетнеобходимо с implode()
.
После вызова file_put_contents()
файл будет перезаписан с:
Sally Whittaker,2018,McCarren House,312,3.75
Belinda Jameson,2017,Cushing House,148,3.52
Jeff Smith,2018,Prescott House,17-D,3.20