2016-03-19 14 views
1

多くのサブディレクトリに多数のJavaScriptファイルを含む複雑なアプリケーションを構築しています。私はそれらをすべて(パフォーマンスには影響しません)含めたいと思っていますが、私はそれぞれのスクリプトタグを手動で作成したくありません。すべてのファイルが "/ js"ディレクトリの子であるとすれば、PHPでそれぞれのスクリプトタグをどのように動的に生成できますか?このようなもの:PHPでディレクトリ内のすべてのJavaScriptファイルのスクリプトタグを再帰的に生成

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

あなたが探していた答えがありますが、本当に必要なものは探していないと思います。私が正しく推測すれば、あなたのjsファイルはすべて依存関係として使用されているので、それらが含まれる順序が重要です。これを念頭に置いて、ディレクトリツリーに基づくスクリプトを再帰的に含むことがうまくいかないことがわかります。 [requirejs](http://requirejs.org/)のように、このために特別に構築されたソリューションを見てください。 –

答えて

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>'; 
    } 
} 

は、あなたが$fileで行うことができます他に何を参照するにはhttp://php.net/manual/en/class.splfileinfo.phpを見てください。

+0

ありがとう!私は$ path変数も必要ないことを知りました。ちょうどこれがトリックです: "$ url = '/'。$ file;" – americanknight

+0

私が今確信しているのは、改行を追加する方法だけです。すべてのスクリプトファイルは大きな段落に置かれていますが、それは問題ありません。 – americanknight

+0

エコー文字列の最後に '\ n'を追加します。 –

関連する問題