サーバーにCSVを保存している場合、PHPを使用して特定の行を記述する方法、142,fred,elephants
それの底に?
追加するために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;
このソリューションは私のために機能します:
<?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);
?>
参照: https://www.w3schools.com/php/func_filesystem_fputcsv.asp
各分割ファイルに元のヘッダーを保持させる場合、これはhakreの答えの修正版です。
$inputFile = './users.csv'; // the source file to split
$outputFile = 'users_split'; // this will be appended with a number and .csv e.g. 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);