조금 질문. 이 코드는 파일에 대해 완벽하게 작동하지만 디렉토리 이름에 대한 검색을 시도하면 결과가 비어 있습니다. 내가 어떻게 고칠 수 있니?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/테스트 /)
somedir/테스트/TEST.TXT
결과 : OK
디렉토리 이름에서도 검색하고 싶습니다. 어떻게 할 수 있습니까?
대단히 감사합니다! 너 나 많이 도와 줬어! – Peter
또 다른 질문입니다.이 코드는 안전한가요? 사용자가 서버 파일을 나열 할 수 없습니까? 사용자가 얻는 것만 $ search 변수입니다. – Peter
@Peter :'basename' 호출 때문에 안전해야합니다. 그러나, 나는 전에 그것을 시도한 적이 없으므로 특별히 인코딩 된 문자를 사용하여 그것을 벗어날 수 없다고 확실히 말할 수는 없다. – Powerlord