作者:此号我已不再用 | 来源:互联网 | 2013-06-03 09:22
一个专门搜索文件的php函数,可以封装为php文件搜索类,这个php的函数有点类似于我们windows系统的查找文件ctrl+f,只要稍做修改,将前台提交页面也做出来,完全是一个小型的php文件搜索小系统了,这个函数共包含了三个参数,1,$srcPath搜索文件的目录路径,2,$dstFile搜索文件
一个专门搜索文件的php函数,可以封装为php文件搜索类,这个php的函数有点类似于我们 windows 系统的查找文件 ctrl+f,只要稍做修改,将前台提交页面也做出来,完全是一个小型的 php 文件搜索小系统了,这个函数共包含了三个参数,1,$srcPath 搜索文件的目录路径,2,$dstFile 搜索文件的类型,3,$subDir 是否搜索子目录。
主要的作用就是搜索指定的文件,然后返回搜索的目录,我们完全可以将其应用到网站程序中,比如可以管理上传的网站附件或管理上传的图片文件,下面已给出使用实例,重点可以进行研究一下,默认运行则显示根目录文件的状况。
PHP代码
-
-
/*------------------------------------------------------------------
-
* 函 数 : searchFiles( $srcPath, $dstFile, $subDir )
-
* 作 用 : 搜索指定文件
-
* 参 数 : $srcPath [String] 待搜索文件的目录路径,为空表示当前目录(选填)
-
$dstFile [String|Array] 待搜索文件类型,为空表示所有文件(选填)
-
$subDir [Boolean] 是否搜索子目录,默认为false(选填)
-
* 返 回 : Array (搜索到的文件列表)
-
-------------------------------------------------------------------*/
-
function searchFiles( $srcPath = '', $dstFile = '*', $subDir = false ){
-
static $files = array();
-
if ( !emptyempty( $srcPath ) ) $srcPath = rtrim( $srcPath, '/' ).'/';
-
if ( is_array( $dstFile ) ) {
-
$file = glob( $srcPath.'{'.implode( ',', $dstFile ).'}', GLOB_BRACE );
-
} else {
-
$file = glob( $srcPath.$dstFile );
-
}
-
if ( !emptyempty( $file ) ) $files = array_merge( $files, $file );
-
if ( $subDir ){
-
foreach( glob( $srcPath.'*', GLOB_ONLYDIR ) as $dir ){
-
searchFiles( $dir, $dstFile, true );
-
}
-
}
-
return $files;
-
}
-
// 调用实例:
-
// 如果要只包含文件可以在调用函数以后加一句 $files = array_filter( $files, 'is_file' );即可
-
// 列出当前目录下的所有文件(包括文件夹)
-
$files = searchFiles();
-
print_r( $files );
-
/*
-
列出当前目录下的所有文件
-
这个有点要注意的地方
-
如果文件夹名称含有.的会返回.例如文件夹名称为: dir.dir
-
如果文件名称不包含.(即无后缀名)的不返回.例如文件名称为:file
-
*/
-
$files = searchFiles( '', '*.*' );
-
print_r( $files );
-
// 列出当前目录(包括子目录)下所有的txt文件
-
$files = searchFiles( '', '*.txt', true );
-
print_r( $files );
-
// 列出images目录下所有的gif文件
-
$files = searchFiles( 'images', '*.gif' );
-
print_r( $files );
-
// 列出当前目录的images目录下所有以t开头的gif以及以a开头m结尾的jpg文件
-
$files = searchFiles( 'images/', array( 't*.gif', 'a*m.jpg' ) );
-
print_r( $files );
-
// 列出当前目录下所有以t开头、中间含有m的gif文件
-
$files = searchFiles( '', 't*m*.gif' );
-
print_r( $files ); ?>