Glob()filesearch,问题

时间:2010-05-26 14:18:30

标签: php file search glob

一个小问题。我有这个代码,它适用于文件,但如果我尝试搜索目录名称,结果为空。我该如何解决这个问题?

<?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 /测试/

结果:空白(我想:/ somedir / test /)

somedir /测试/ test.txt的

结果:好的

我想在目录名中搜索,我该怎么做?

2 个答案:

答案 0 :(得分:0)

你的脚本运行正常。我认为webserver用户没有给定目录的权限。

答案 1 :(得分: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);
    }