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/test.txt

结果:好的

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

4

2 回答 2

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 回答
0

你的脚本工作正常。我认为网络服务器用户没有给定目录的权限。

于 2010-05-26T14:37:03.237 回答