Есть ли способ использовать этот скрипт? но вместо 1 файла он читает целую директорию? а затем показывает это на веб-странице? на данный момент он показывает только 1 CSV файл. Я не знаю, могу ли я использовать glob для этого. мои знания php улучшаются, но я все еще ужасен в этом. XD
<?PHP
$file_handle = fopen("../test.csv", "r");
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 1024);
echo '<tr><td>' . $line_of_text[0] . '</td><td>' . $line_of_text[1] . '</td><td>' . $line_of_text[2] . '</td><td>' . $line_of_text[3] . '</td><td>' . $line_of_text[4] . '</td></tr>';
}
fclose($file_handle);
?>
Да, вы можете использовать glob
для извлечения списка файлов в вашем каталоге, а затем прокручивать их с помощью foreach()
и использовать существующий код.
<?php
$arrFiles = glob("../*.csv");
foreach($arrFiles as $strFileName) {
$file_handle = fopen($strFileName, "r");
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 1024);
echo '<tr><td>' . $line_of_text[0] . '</td><td>' . $line_of_text[1] . '</td><td>' . $line_of_text[2] . '</td><td>' . $line_of_text[3] . '</td><td>' . $line_of_text[4] . '</td></tr>';
}
fclose($file_handle);
}
Вы можете ограничить количество файлов, которые вы открываете и закрываете, а не открывать все файлы в этом каталоге - или кэшировать результаты.
Чтобы ограничить количество открываемых файлов, вы можете использовать array_slice
;
$arrFiles = glob("../*.csv");
$arrFiles = array_slice($arrFiles, 0, 10); //Limit to 10 files
Что вам нужно сделать, это захватить список файлов, затем получить их последнее измененное время, а затем отсортировать этот массив. Например:
$arrFiles = glob("../*.csv");
$arrSortedFiles = array();
foreach($arrFiles as $strFileName) {
$arrSortedFiles[$strFileName] = filemtime($strFileName);
}
natsort($arrSortedFiles); //Sort naturally. Oldest first.
foreach(array_keys($arrSortedFiles) as $strFileName) {
//...
}
Если, однако, вы хотите, чтобы сортировка была наоборот - сначала самая новая - тогда просто используйте array_reverse()
.
$strFileName
вместо ../test.csv