优化php文件读取代码

优化php文件读取代码,php,optimization,Php,Optimization,我有以下几点是相当缓慢的。我怎样才能加快速度 它扫描一个目录,从文件夹名中生成标题,从中检索pdf文件并将其添加到列表中 $directories= array_diff(scandir("../pdfArchive/subfolder", 0), array('..', '.')); foreach ($directories as $v) { echo "<h3>".$v."</h3>"; $current = array_diff(scandir

我有以下几点是相当缓慢的。我怎样才能加快速度

它扫描一个目录,从文件夹名中生成标题,从中检索pdf文件并将其添加到列表中

$directories= array_diff(scandir("../pdfArchive/subfolder", 0), array('..', '.'));
  foreach ($directories as $v) {
    echo "<h3>".$v."</h3>";
    $current = array_diff(scandir("../pdfArchive/subfolder/".$v, 0), array('..', '.'));
    echo "<ul style=\"list-style-image: url(/images/pdf.gif); margin-left: 20px;\">";
    foreach ($current as $vone) {
      echo "<li><a target=\"blank\" href=\"../pdfArchive/subfolder/".$vone."\">".str_replace(".pdf", "", $vone)."</a>";
      echo "</li><br>";
    }
    echo "</ul>";
  }

当数组非常大时,我不确定array_diff的速度有多快,简单地添加一个单独的检查并确保“.”和“…”不是返回的名称不是更快吗

除此之外,我看不出有什么真正的问题


<>你测试了什么来考虑当前的方法慢?

< P>不要使用ARRAY-Diffi过滤当前和父目录,使用类似的东西,然后测试它是否是。或通过if语句

glob有一个标志,允许您仅检索循环的目录


对代码进行概要分析,以准确了解哪些行/函数执行缓慢

以下是我使用的代码片段,它是从php.net改编而来的。它非常基本,遍历给定的目录并列出其中包含的文件

// The @ suppresses any errors, $dir is the directory path
if (($handle = @opendir($dir)) != FALSE) {
    // Loop over directory contents
    while (($file = readdir($handle)) !== FALSE) {
        // We don't want the current directory (.) or parent (..)
        if ($file != "." && $file != "..") {
            var_dump($file);
            if (!is_dir($dir . $file)) {
                // $file is really a file
            } else {
                // $file is a directory
            }
        }
    }
    closedir($handle);
} else {
    // Deal with it
}

您可以通过使用is_dir来识别我上面所示的文件夹,从而进一步调整此选项,使其在子目录上递归。

您是如何确定它很慢的?因为运行它需要一段时间。谢谢您的提示。虽然我在寻找更直接的答案