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

时间:2016-03-19 15:45:54

标签: javascript php file recursion tags

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

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

1 个答案:

答案 0 :(得分:1)

最优雅的方式是在我看来使用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做些什么。