Add a new line to a CSV file

This solution works for me:

<?php
$list = array
(
'Peter,Griffin,Oslo,Norway',
'Glenn,Quagmire,Oslo,Norway',
);

$file = fopen('contacts.csv','a');  // 'a' for append to file - created if doesn't exit

foreach ($list as $line)
  {
  fputcsv($file,explode(',',$line));
  }

fclose($file); 
?>

Ref: https://www.w3schools.com/php/func_filesystem_fputcsv.asp


You can use an object oriented interface class for a file - SplFileObject http://php.net/manual/en/splfileobject.fputcsv.php (PHP 5 >= 5.4.0)

$file = new SplFileObject('file.csv', 'a');
$file->fputcsv(array('aaa', 'bbb', 'ccc', 'dddd'));
$file = null;

Open the CSV file for appending (fopen­Docs):

$handle = fopen("test.csv", "a");

Then add your line (fputcsv­Docs):

fputcsv($handle, $line); # $line is an array of strings (array|string[])

Then close the handle (fclose­Docs):

fclose($handle);

Tags:

Php

Csv