Добавить новую строку в файл CSV

Если у меня есть CSV, сохраненный на сервере, как я могу использовать PHP для написания данной строки, скажем 142,fred,elephants на дне?

Solutions Collecting From Web of "Добавить новую строку в файл CSV"

Откройте CSV-файл для добавления ( fopen Docs ):

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

Затем добавьте свою строку ( fputcsv Docs ):

 fputcsv($handle, $line); # $line is an array of string values here 

Затем закройте дескриптор ( fclose Docs ):

 fclose($handle); 

Надеюсь, это полезно.

Вы можете использовать объектно-ориентированный класс интерфейса для файла – 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; 

Если вы хотите, чтобы каждый файл split сохранял заголовки оригинала; это модифицированная версия ответа Хакре:

 $inputFile = './users.csv'; // the source file to split $outputFile = 'users_split'; // this will be appended with a number and .csv eg users_split1.csv $splitSize = 10; // how many rows per split file you want $in = fopen($inputFile, 'r'); $headers = fgets($in); // get the headers of the original file for insert into split files // No need to touch below this line.. $rowCount = 0; $fileCount = 1; while (!feof($in)) { if (($rowCount % $splitSize) == 0) { if ($rowCount > 0) { fclose($out); } $out = fopen($outputFile . $fileCount++ . '.csv', 'w'); fputcsv($out, explode(',', $headers)); } $data = fgetcsv($in); if ($data) fputcsv($out, $data); $rowCount++; } fclose($out); 

Это решение работает для меня:

 <?php $list = array ( "Peter,Griffin,Oslo,Norway", "Glenn,Quagmire,Oslo,Norway", ); $file = fopen("contacts.csv","w"); foreach ($list as $line) { fputcsv($file,explode(',',$line)); } fclose($file); ?> 

Ссылка: https://www.w3schools.com/php/func_filesystem_fputcsv.asp