首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

取得linux文件夹下的所有文件(强化版)

2013-04-26 
获得linux文件夹下的所有文件(强化版)class Sys{/*** 获得linux文件夹下的所有文件,通过参数返回结果** @p

获得linux文件夹下的所有文件(强化版)

class Sys{    /**     * 获得linux文件夹下的所有文件,通过参数返回结果     *      * @param string $dir1 必须是绝对路径,且最后没有/,例如/home/dir2     * @param array  $arr  一个空的数组传进去     * @param string $regular 一个正则表达式,对应文件名,例如'#\.html$#'     * @param string $content_regular 一个正则表达式,对应文件内容,例如'#内容标题#',     *     如果使用这个参数,文件编码要统一     *      * @return      */    public static function get_file_by_folder($dir1, &$arr,$regular='',$content_regular='')    {                    //static $db = null;        if (is_dir($dir1)) {            $handle = dir($dir1);            if ($dh = opendir($dir1)) {                while ($entry = $handle->read()) {                    if (($entry != ".") && ($entry != "..")  && ($entry != ".svn")){                        //文件全名                        $new = $dir1."/".$entry;                        if(is_dir($new)) {                            //比较                            self::get_file_by_folder($new,$arr,$regular,$content_regular) ;                        } else { //如果1是文件,                            if ($regular && (!$content_regular)){                                if (preg_match($regular,$entry)) {                                    $arr[] = $new;                                }                            }elseif($content_regular && (!$regular)){                                $content = file_get_contents($new);                                if (preg_match($content_regular,$content)) {                                    $arr[] = $new;                                }                            }elseif ($content_regular && $regular){                                $content = file_get_contents($new);                                if (preg_match($regular,$entry) &&                                     preg_match($content_regular,$content)  ) {                                    $arr[] = $new;                                }                            }else{                                $arr[] = $new;                            }                        }                    }                }                closedir($dh);            }        }                    }        }

热点排行