Я в настоящее время этот код в PHP:Наиболее эффективный способ написания DirectoryIterator для PHP
// RETURN FILE NAMES FROM VAULT INTO ARRAYS
$vault_folder = "\\\\namespace\\namespace\\folder\\folder\\folder\\folder\\";
foreach (new DirectoryIterator($vault_folder) as $fileInfo) {
if (strtolower(pathinfo($fileInfo, PATHINFO_EXTENSION)) == "pdf") {
if($fileInfo->isDot() || !$fileInfo->isFile()) continue;
$files[] = $fileInfo->getFilename();
};
}
arsort($files);
То, что я хотел бы знать, если это является наиболее эффективным способом, чтобы написать это заявление.
В настоящее время он ищет сетевое местоположение '$vault_folder
и сохраняет все имена файлов в массиве $files
.
Папка содержит несколько файлов, и я только хочу, чтобы хранить файлы PDF в $files
массиве, следовательно:
if (strtolower(pathinfo($fileInfo, PATHINFO_EXTENSION)) == "pdf")
strtolower
входят в одну из компаний, которые создают некоторые из этих файлов PDF для нас сохранить файлы как .PDF
, а не .pdf
. Он также должен связать обратно файл в дальнейшем в коде, чтобы его нужно было хранить в правильном случае.
Возврат файлов 7k занимает 7 секунд, отдайте или возьмите!
glob кажется хорошей функцией для проверки. Однако вышеприведенный оператор не будет содержать файлы .PDF и .pdf, он добавит только файлы .pdf в массив $ files – bepster
Обновлен ответ для поддержки как .pdf *, так и * .PDF * (если вам не нужны такие вещи, как * .Pdf * или * .pDf *). – ShiraNai7
GLOB, кажется, возвращает результаты медленнее среднего значения 16сек для моего запроса и среднего значения 23сек для GLOB, я собираюсь создать свое имя файла в таблицу sql и ссылку таким образом, поскольку это будет намного более эффективно – bepster