频道栏目
首页 > 资讯 > 文件处理 > 正文

php文件搜索函数、文件搜索类

16-01-06        来源:[db:作者]  
收藏   我要投稿
一个专门搜索文件的php函数,可以封装为php文件搜索类,这个php的函数有点类似于我们 windows 系统的查找文件 ctrl+f,只要稍做修改,将前台提交页面也做出来,完全是一个小型的 php 文件搜索小系统了,这个函数共包含了三个参数,1,$srcPath 搜索文件的目录路径,2,$dstFile 搜索文件的类型,3,$subDir 是否搜索子目录。

主要的作用就是搜索指定的文件,然后返回搜索的目录,我们完全可以将其应用到网站程序中,比如可以管理上传的网站附件或管理上传的图片文件,下面已给出使用实例,重点可以进行研究一下,默认运行则显示根目录文件的状况。

PHP代码
  1. <?php   
  2. /*------------------------------------------------------------------  
  3. * 函 数 : searchFiles( $srcPath, $dstFile, $subDir )  
  4. * 作 用 : 搜索指定文件  
  5. * 参 数 : $srcPath [String] 待搜索文件的目录路径,为空表示当前目录(选填)  
  6.           $dstFile [String|Array] 待搜索文件类型,为空表示所有文件(选填)  
  7.           $subDir  [Boolean] 是否搜索子目录,默认为false(选填)  
  8. * 返 回 : Array (搜索到的文件列表)  
  9. -------------------------------------------------------------------*/  
  10. function searchFiles( $srcPath = '', $dstFile = '*', $subDir = false ){   
  11.     static $files = array();   
  12.     if ( !emptyempty( $srcPath ) ) $srcPath = rtrim( $srcPath, '/' ).'/';   
  13.     if ( is_array( $dstFile ) ) {   
  14.         $file = glob( $srcPath.'{'.implode( ',', $dstFile ).'}', GLOB_BRACE );   
  15.     } else {   
  16.         $file = glob( $srcPath.$dstFile );   
  17.     }   
  18.     if ( !emptyempty( $file ) ) $files = array_merge( $files, $file );   
  19.     if ( $subDir ){   
  20.         foreach( glob( $srcPath.'*', GLOB_ONLYDIR ) as $dir ){   
  21.             searchFiles( $dir, $dstFile, true );   
  22.         }   
  23.     }   
  24.     return $files;   
  25. }   
  26. // 调用实例:   
  27. // 如果要只包含文件可以在调用函数以后加一句 $files = array_filter( $files, 'is_file' );即可   
  28. // 列出当前目录下的所有文件(包括文件夹)   
  29. $files = searchFiles();   
  30. print_r( $files );   
  31. /*  
  32. 列出当前目录下的所有文件  
  33. 这个有点要注意的地方  
  34. 如果文件夹名称含有.的会返回.例如文件夹名称为: dir.dir  
  35. 如果文件名称不包含.(即无后缀名)的不返回.例如文件名称为:file  
  36. */  
  37. $files = searchFiles( '', '*.*' );   
  38. print_r( $files );   
  39. // 列出当前目录(包括子目录)下所有的txt文件   
  40. $files = searchFiles( '', '*.txt', true );   
  41. print_r( $files );   
  42. // 列出images目录下所有的gif文件   
  43. $files = searchFiles( 'images', '*.gif' );   
  44. print_r( $files );   
  45. // 列出当前目录的images目录下所有以t开头的gif以及以a开头m结尾的jpg文件   
  46. $files = searchFiles( 'images/', array( 't*.gif', 'a*m.jpg' ) );   
  47. print_r( $files );   
  48. // 列出当前目录下所有以t开头、中间含有m的gif文件   
  49. $files = searchFiles( '', 't*m*.gif' );   
  50. print_r( $files ); ?>  

相关TAG标签
上一篇:php GD库饼状图生成接口源码
下一篇:动态网页PHP脚本中include文件报错解决方法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站