使用 PHP 递归地为目录中的所有 JavaScript 文件生成脚本标记


Recursively generate script tags for all JavaScript files within a directory with PHP

我正在构建一个复杂的应用程序,在许多子目录中包含大量JavaScript文件。我知道我想将它们全部包含(这不会影响性能),但我不想为每个手动创建脚本标签。鉴于我的所有文件都是"/js"目录的子文件,我如何使用 PHP 为每个文件动态生成脚本标签?像这样:

// first somehow recursively get all .js files, then:
foreach($files as $file) {
  echo '<script src="' . $file->path . '"></script>';
}
在我看来,

最优雅的方式是使用 SPL。

$dirIterator = new RecursiveDirectoryIterator("/path/to/js");
$iterator = new RecursiveIteratorIterator(
  $dirIterator,
  RecursiveIteratorIterator::SELF_FIRST
);
foreach ($iterator as $file) {
    if($file->getExtension() == 'js') {
      // You probably have to adjust the full path according to your DOC_ROOT
      $url = $file->getPathname();
      echo '<script src="' . $url . '"></script>';
    }
}

看看 http://php.net/manual/en/class.splfileinfo.php,看看你还能用$file做什么。