为 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 做什么。