私は次の関数を使用して、指定されたフォルダ内のファイルとディレクトリを列挙します。サブフォルダを実行するとうまく動作しますが、何らかの理由で親ディレクトリで作業したくありません。なぜどんなアイデア?私はそれがPHPの設定や何かであるかもしれないと思いますが、どこから始めるべきかわかりません。そうであれば、これは安価な共有ホスティング設定で実行されるので、私は運が不足しています。親ディレクトリのファイルを列挙してください
この機能の使い方は次のとおりです。最初のパラメータは列挙するパスで、2番目のパラメータは無視するフィルタのリストです。私は以下のように完全なパスを通過しようとしました。私はちょうど..
、./..
とrealpath('..')
を渡そうとしました。何も動作していないようです。私は関数が何とか何とか失敗しているわけではないことを知っています。 dirs配列に手動でディレクトリを追加すると、値が返されます。
$projFolder = '/hsphere/local/home/customerid/sitename/foldertoindex';
$items = enumerateDirs($projFolder, array(0 => "Admin", 1 => "inc"));
ここでは、opendir関数とdirを混合している関数自体
function enumerateDirs($directory, $filterList)
{
$handle = opendir($directory);
while (false !== ($item = readdir($handle)))
{
if ($item != "." && $item != ".." && $item != "inc" && array_search($item, $filterList) === false)
{
$path = "{$directory->path}/{$item}";
if (is_dir($item))
{
$tmp['name'] = $item;
$dirs[$item] = $tmp;
unset($tmp);
}
elseif (is_file($item))
{
$tmp['name'] = $item;
$files[] = $tmp;
unset($tmp);
}
}
}
ksort($dirs, SORT_STRING);
sort($dirs);
ksort($files, SORT_STRING);
sort($files);
return array("dirs" => $dirs, "files" => $files);
}
ありがとうございます。これはサイドプロジェクトなので、後で確認することはできません。あなたに知らせてくれるだろうが、あなたが言っていることは意味がある(そしておそらく正しい)。 –