Я хочу создать PHP-скрипт командной строки, который объединил бы / объединил бы несколько файлов CSV из папки в одну.
Каждый CSV-файл имеет 2 столбца, разделенных запятой (,), но несколько строк. Также каждое из CSV-файлов уникально, поэтому, когда мы объединяем файлы CSV, я хочу, чтобы имя файла CSV было первым столбцом для каждой строки в файле.
Поэтому, в конце концов, когда скрипт, который он запускает, он присоединится к нескольким CSV-файлам под одной папкой. Из 2 столбцов выходной файл будет иметь 3 столбца, где первым столбцом будет имя файла.
<?php $nn = 0; foreach (glob("*.csv") as $filename) { if (($handle = fopen($filename, "r")) !== FALSE) { while (($data = fgetcsv($handle, 0, ",")) !== FALSE) { $c = count($data); $csvarray[$nn][] = $filename; for ($x=0;$x<$c;$x++) { $csvarray[$nn][] = $data[$x]; } $nn++; } fclose($handle); } } $fp = fopen('../file.csv', 'w');//output file set here foreach ($csvarray as $fields) { fputcsv($fp, $fields); } fclose($fp); ?>
Я не делал никаких испытаний, хотя, вот логика и код, которым вы можете следовать.