Поэтому у меня есть это приложение, которое обрабатывает файлы CSV. У меня есть строка кода для загрузки файла.
$myFile = "data/FrontlineSMS_Message_Export_20120721.csv"; //The name of the CSV file $fh = fopen($myFile, 'r'); //Open the file
Я хотел бы найти способ, которым я мог бы искать в каталоге data
и получать самый новый файл (все они имеют теги даты, чтобы они были в порядке внутри data
) и задали имя, равное $myFile
.
Я действительно не мог найти и понять документацию php-каталогов, поэтому любые полезные ресурсы также будут оценены. Спасибо.
Вот попытка использования scandir
, предполагая, что единственными файлами в каталоге являются файлы с меткой времени, которые вы хотите:
$files = scandir('data', SCANDIR_SORT_DESCENDING); $newest_file = $files[0];
Сначала мы перечислим все файлы в каталоге в порядке убывания, затем, в зависимости от того, какой из них первый в этом списке, имеет «наибольшее» имя файла – и, следовательно, самое большое значение временной метки – и, следовательно, является самым новым.
Обратите внимание, что scandir
был добавлен в PHP 5, но на странице его документации показано, как реализовать это поведение в PHP 4.
Если у ваших имен файлов нет метки времени в названии, на этот вопрос уже был дан ответ: PHP: получить последнее добавление файла в каталоге