sp; )
* @]Author[= SNakeVil <51JS,BU,PHPx> (snakevil@qq.com)
* @]See[=
*/
function seek_file($pattern=".*", $path=".", $seek_type=1, $sub_dir_level=0, $limit=100) {
/* 检查参数值 */
$is_error = $seek_type!=1 && $seek_type!=0 && $seek_type!=-1;
$is_error = $is_error && (!is_int($sub_dir_level) || $sub_dir_level < 0);
$is_error = $is_error && (!is_int($limit) || $limit < 1);
if ($is_error) return $this->error_occur(0x000B, __FUNCTION__);
unset($is_error);
$result = array();
/* array() == FALSE,所以需要使用 === */
if (FALSE===$i=$this->list_dir($path)) return FALSE; // 如果不能列举目录,返回
for ($j=0,$k=count($i);$j<$k;$j++) {
if ($i[$j]["type"]==-1) continue; // 对于非目录非文件项目,跳过
if ($i[$j]["type"]==0&&$sub_dir_level) { // 如果需要搜索下层目录
if (FALSE===$l=$this->seek_file($pattern,$i[$j]["location"],$seek_type,($sub_dir_level - 1),$limit)) return FALSE;
$result = array_merge($result, $l); // 将下层目录搜索结果添加
}
if ($seek_type+$i[$j]["type"]==1||!preg_match("/^".$pattern."$/", $i[$j]["name"])) continue; // 如果不搜索当前类型,跳过
$result = $i[$j];
if (count($result)>=$limit)