[摘要]!preg_match("/^".pattern."/", i[j]["name"])) continue; // 如果不搜索当前类型,跳...
!preg_match("/^".$pattern."$/", $i[$j]["name"])) continue; // 如果不搜索当前类型,跳过
$result[] = $i[$j];
if (count($result)>=$limit) { // 截去超过要求的长度,离开列举
array_splice($result, $limit);
break;
}
}
unset($i, $j, $k, $l);
return $this->result = $result;
}
/**
* @]Method Name[= delete()
* @]Purpose[=
* 删除指定对象,文件或文件夹——包括内含子目录和文件的非空文件夹
* @]Parameter[=
* string $path 指定要删除的内容路径,文件或目录均可
* @]Return[= boolean 错误返回 FALSE,否则 TRUE
* @]Author[= SNakeVil <51JS,BU,PHPx> (snakevil@qq.com)
* @]See[=
*/
function delete($path="") {
$path = realpath($path);
if (!$path) return $this->error_occur(0x000A, __FUNCTION__);
if (!is_dir($path)) {
if (@unlink($path)) return TRUE; // 文件删除成功
return $this->error_occur(0x0004, $path);
} else {
if (FALSE===$i=$this->list_dir($path)) return FALSE; // 不能列举目录
for ($j=0,$k=count($i);$j<$k;$j++)
if (!$this->delete($i[$j]["location"])) return FALSE; // 删除目录内容出错
unset($i, $j, $k);
return TRUE;
}
}
/**
* @]Method Name[= generate_path()
* @]Purpose[=
* 获取现有或不存在文件、目录的绝对地址
* @]Parameter[=
* string $path 要获取地址的文件、目录现有相对、绝对地址
* @]Return[= string 获得的地址
* @]Author[= SNakeVil <51JS,BU,PHPx> (snakevil@qq.com)
* @]See[=
*/
function generate_path($path="") {
$i = "/"==DIRECTORY_SEPARATOR ? "\\" : "/"; // 统一目录分割符
$path = str_replace($i, DIRECTORY_SEPARATOR, strval($path));
if ($path[strlen($path)-1]!=DIRECTORY_SEPARATOR) $path .= DIRECTORY_SEPARATOR;
$i = strpos($path, DIRECTORY_SEPARATOR); // 获得路径中首个目录分割符的位置
$ext = substr($path, $i+1);
$path = substr($path, 0, $i+1);
if ($i=realpath($path)) $path = $i; // 得到基本路径
else {
$ext = $path.$ext;
$path = realpath(".");
}
if (strlen($ext)) { // 对剩余内容处理
$ext = preg_replace("/[\:\*\?\"\<\>\
关键词:PHP文件系统基本设置类