Чтение * .csv-файлов из каталога и отображение содержимого каждого файла

Мне нужна помощь при чтении папки и открытии / выводе данных csv, я использовал примеры, написанные другими людьми, но ни один из них не работал для меня.

То, что у меня сейчас есть, но это не выводит файлы:

$files = scandir($PathToCreate.$version."/"); //scan the folder foreach($files as $file) { //for each file in the folder //The following is another example I found but does not output anything I just need to open each file and be able to output / target specific data $csv = array(); $lines = file($file, FILE_IGNORE_NEW_LINES); foreach ($lines as $key => $value) { $csv[$key] = str_getcsv($value); } print_r($csv) } 

Это должно сработать для вас:

(Здесь я сначала извлекаю все файлы из каталога с расширением *.csv с glob() . После этого я просматриваю каждый файл и читаю его с помощью fopen() и fgetcsv() .)

 <?php $files = glob("$PathToCreate$version/*.csv"); foreach($files as $file) { if (($handle = fopen($file, "r")) !== FALSE) { echo "<b>Filename: " . basename($file) . "</b><br><br>"; while (($data = fgetcsv($handle, 4096, ",")) !== FALSE) { echo implode("\t", $data); } echo "<br>"; fclose($handle); } else { echo "Could not open file: " . $file; } } ?> 

Вероятно, первая проблема заключается в том, что вы должны игнорировать две записи в каталоге . и .. которые имеют особое значение и не полезны для вас:

 $files = scandir($PathToCreate.$version."/"); //scan the folder foreach($files as $file) { //for each file in the folder if ( ! in_array($file, ['.','..'])) { $lines = file($file, FILE_IGNORE_NEW_LINES); foreach ($lines as $key => $value) { $csv[$key] = str_getcsv($value); } print_r($csv) } }