頂部導航開始 -->

php文件搜索函數、文件搜索類

一個專門搜索文件的php函數,可以封裝為php文件搜索類,這個php的函數有點類似于我們 windows 系統的查找文件 ctrl+f,只要稍做修改,將前臺提交頁面也做出來,完全是一個小型的 php 文件搜索小系統了,這個函數共包含了三個參數,1,$srcPath 搜索文件的目錄路徑,2,$dstFile 搜索文件的類型,3,$subDir 是否搜索子目錄。

    主要的作用就是搜索指定的文件,然后返回搜索的目錄,我們完全可以將其應用到網站程序中,比如可以管理上傳的網站附件或管理上傳的圖片文件,下面已給出使用實例,重點可以進行研究一下,默認運行則顯示根目錄文件的狀況。


<?php

  1. /*------------------------------------------------------------------  

  2. * 函 數 : searchFiles( $srcPath, $dstFile, $subDir )  

  3. * 作 用 : 搜索指定文件  

  4. * 參 數 : $srcPath [String] 待搜索文件的目錄路徑,為空表示當前目錄(選填)  

  5.           $dstFile [String|Array] 待搜索文件類型,為空表示所有文件(選填)  

  6.           $subDir  [Boolean] 是否搜索子目錄,默認為false(選填)  

  7. * 返 回 : Array (搜索到的文件列表)  

  8. -------------------------------------------------------------------*/  

  9. function searchFiles( $srcPath = '', $dstFile = '*', $subDir = false ){   

  10.     static $files = array();   

  11.     if ( !emptyempty( $srcPath ) ) $srcPath = rtrim( $srcPath, '/' ).'/';   

  12.     if ( is_array( $dstFile ) ) {   

  13.         $file = glob( $srcPath.'{'.implode( ',', $dstFile ).'}', GLOB_BRACE );   

  14.     } else {   

  15.         $file = glob( $srcPath.$dstFile );   

  16.     }   

  17.     if ( !emptyempty( $file ) ) $files = array_merge( $files, $file );   

  18.     if ( $subDir ){   

  19.         foreach( glob( $srcPath.'*', GLOB_ONLYDIR ) as $dir ){   

  20.             searchFiles( $dir, $dstFile, true );   

  21.         }   

  22.     }   

  23.     return $files;   

  24. }   

  25. // 調用實例:   

  26. // 如果要只包含文件可以在調用函數以后加一句 $files = array_filter( $files, 'is_file' );即可   

  27. // 列出當前目錄下的所有文件(包括文件夾)   

  28. $files = searchFiles();   

  29. print_r( $files );   

  30. /*  

  31. 列出當前目錄下的所有文件  

  32. 這個有點要注意的地方  

  33. 如果文件夾名稱含有.的會返回.例如文件夾名稱為: dir.dir  

  34. 如果文件名稱不包含.(即無后綴名)的不返回.例如文件名稱為:file  

  35. */  

  36. $files = searchFiles( '', '*.*' );   

  37. print_r( $files );   

  38. // 列出當前目錄(包括子目錄)下所有的txt文件   

  39. $files = searchFiles( '', '*.txt', true );   

  40. print_r( $files );   

  41. // 列出images目錄下所有的gif文件   

  42. $files = searchFiles( 'images', '*.gif' );   

  43. print_r( $files );   

  44. // 列出當前目錄的images目錄下所有以t開頭的gif以及以a開頭m結尾的jpg文件   

  45. $files = searchFiles( 'images/', array( 't*.gif', 'a*m.jpg' ) );   

  46. print_r( $files );   

  47. // 列出當前目錄下所有以t開頭、中間含有m的gif文件   

  48. $files = searchFiles( '', 't*m*.gif' );   

  49. print_r( $files ); 

  50. ?>


自學php博客
請先登陸后發表評論
  • 最新評論
  • 總共1條評論
自學php博客

哲涵1111自學php博客

2017-08-29 14:08:55 回復

  • ? 2014-2016 zixuephp.cn 版權所有
  • ICP證:皖ICP備16012107號
  • 聯系郵箱:[email protected]
  • 交流請加微信:weibobf2899 或掃下方二維碼
双大床红利扑克1手APP