如何编写递归目录搜索,该搜索采用给定的字符串并返回整个路径以及php中的文件名?
答案 0 :(得分:3)
php函数dir
会帮助你。
<强> http://php.net/manual/en/class.dir.php 强>
在docs的笔记中有一个例子(由在线论坛网上的sojka)显示这样做,我已经包含在下面......
<?php
public static function getTreeFolders($sRootPath = UPLOAD_PATH_PROJECT, $iDepth = 0) {
$iDepth++;
$aDirs = array();
$oDir = dir($sRootPath);
while(($sDir = $oDir->read()) !== false) {
if($sDir != '.' && $sDir != '..' && is_dir($sRootPath.$sDir)) {
$aDirs[$iDepth]['sName'][] = $sDir;
$aDirs[$iDepth]['aSub'][] = self::getTreeFolders($sRootPath.$sDir.'/',$iDepth);
}
}
$oDir->close();
return empty($aDirs) ? false : $aDirs;
}
?>
其他人在同一页面上有很多其他类似的例子,所以找一个你喜欢的并从那里去的人......
答案 1 :(得分:0)
您可以使用RecursiveDirectoryIterator迭代dirctory。 看看这个:
$search_query = "test";
$directory = new RecursiveDirectoryIterator('/path/');
$iterator = new RecursiveIteratorIterator($directory);
$result = new RegexIterator($iterator, '/^.+\'.$search_query.'$/i', RecursiveRegexIterator::GET_MATCH);
然后(array) $result
通常应该包含所有文件名,其中&#39; test&#39;在&#39; / path /&#39;。
希望它有所帮助;)