0
的最有效的方法我目前在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似乎返回结果慢我的查询平均16secs和GLOB平均23secs,我要建立我的文件名到一个SQL表,并以这种方式链接,因为这将更有效 – bepster