Php Glob()文件搜索,问题
一个小问题。我有这段代码,它非常适合文件,但是如果我尝试搜索目录名,结果是空的。我怎样才能解决这个问题Php Glob()文件搜索,问题,php,file,search,glob,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);
<?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/test.txt
结果:好的
我还想在目录名中搜索,如何才能做到这一点?您的脚本工作正常。我认为Web服务器用户没有对给定目录的权限。如果要搜索目录,必须更改ifis_文件$d块。现在,当它遇到一个目录时,只需再次调用listdirs。。。但这也意味着你将永远看不到有链接到该目录的打印 我建议在foreach中执行类似的操作:
在这种情况下,这怎么可能呢?搜索两个一/二/目录结构结果:空白我想要:/一/二/搜索文件test或test.txt工作正常。one/two/test.txt结果:正常结果:one/two/test.txt文件搜索正常,但任何目录搜索都不正常。我认为这不是任务前的问题。非常感谢!你帮了我很多!还有一个小问题,这个代码安全吗?用户不能列出服务器文件吗?我从用户那里得到的只有$search变量。@彼得:它应该是安全的,因为basename调用。然而,我以前从未尝试过,所以我不能肯定他们不能用特殊编码的字符突破它。
$filename = basename($d);
if(eregi($search,$filename)){
print "<a href=http://someurl.com/" . $d .">". $d . "</a><br/>";
}
if(is_dir($d)){
listdirs($d."/",$search);
}