Мне нужна помощь с чтением папки и открытием / выводом данных 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)
}
}