サブディレクトリでディレクトリを参照するPHPスクリプトを実行する必要があります。 各サブディレクトリ(とサブサブディレクトリ)ごとに、ファイル名とその親ディレクトリを取得する必要があります。ディレクトリを再帰的にブラウズしてファイル名を取得する
これを行うには簡単な解決策がありますか? ありがとう
サブディレクトリでディレクトリを参照するPHPスクリプトを実行する必要があります。 各サブディレクトリ(とサブサブディレクトリ)ごとに、ファイル名とその親ディレクトリを取得する必要があります。ディレクトリを再帰的にブラウズしてファイル名を取得する
これを行うには簡単な解決策がありますか? ありがとう
私のWebサイトでも同じ機能を作成しなければならなかったので、私は参照として機能を投稿します。
function recursiveFileSearch($path, $searchmask = "*") {
$path = rtrim($path, '/');
$files = array();
if(is_array($searchmask)) {
for($i = 0; $i < count($searchmask); $i++) {
$files = array_merge($files, glob($path.'/'.$searchmask[$i]));
}
sort($files);
} else {
$files = glob($path.'/'.$searchmask);
}
$dirs = glob($path.'/*', GLOB_ONLYDIR);
foreach($dirs as $dir) {
if(is_dir($dir)) {
$files = array_merge($files, recursiveFileSearch($dir, $searchmask));
}
}
sort($files);
return $files;
}
あなたが尋ねていることは100%確信していませんが、scandir documentationを見ると、最初のコメントには非常に便利な再帰スキャン機能があります。
<?php
function dirToArray($dir) {
$result = array();
$cdir = scandir($dir);
foreach ($cdir as $key => $value)
{
if (!in_array($value,array(".","..")))
{
if (is_dir($dir . DIRECTORY_SEPARATOR . $value))
{
$result[$value] = dirToArray($dir . DIRECTORY_SEPARATOR . $value);
}
else
{
$result[] = $value;
}
}
}
return $result;
}
?>
結果の形式は次のとおりです。
Array
(
[subdir1] => Array
(
[0] => file1.txt
[subsubdir] => Array
(
[0] => file2.txt
[1] => file3.txt
)
)
[subdir2] => Array
(
[0] => file4.txt
}
)
@HurricaneDevelopment thanks man! :) – WWWWWWWWWP
ありがとう!私はこの解決策を試みます! – WWWWWWWWWP