0

ちょっとした質問。私はこのコードを持っていますが、これはファイルに最適ですが、ディレクトリ名で検索しようとすると、結果が空白になります。どうすれば修正できますか?

<?php
function listdirs($dir,$search)
{
    static $alldirs = array();
    $dirs = glob($dir."*");
    foreach ($dirs as $d){
        if(is_file($d)){
            $filename = pathinfo($d);
            if(eregi($search,$filename['filename'])){   
                print  "<a href=http://someurl.com/" . $d .">". $d . "</a><br/>";
            }
        }else{
            listdirs($d."/",$search);
        }
    }
}
$path = "somedir/";
$search= "test";
listdirs($path,$search);
?>

somedir / test /

結果:空白(欲しい:/ somedir / test /)

somedir / test / test.txt

結果:OK

ディレクトリ名も検索したいのですが、どうすればいいですか?

4

2 に答える 2

0

スクリプトは正常に機能しています。Webサーバーユーザーには、指定されたディレクトリへのアクセス許可がないと思います。

于 2010-05-26T14:37:03.237 に答える
0

ディレクトリを検索する場合は、if(is_file($d))ブロックを変更する必要があります。今のところ、ディレクトリに遭遇したときにもう一度呼び出すだけです...しかし、これは、そのディレクトリへのリンクがlistdirs表示されないことも意味します。print

foreach代わりに、次のようなことを行うことをお勧めします。

    $filename = basename($d);
    if(eregi($search,$filename)){   
        print  "<a href=http://someurl.com/" . $d .">". $d . "</a><br/>";
    }
    if(is_dir($d)){
        listdirs($d."/",$search);
    }
于 2010-05-26T14:44:15.163 に答える