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

69 篇文章 1 订阅

class Sys
{
/**
* 获得linux文件夹下的所有文件,通过参数返回结果
*
* @param string $dir1 必须是绝对路径,且最后没有/,例如/home/dir2
* @param array $arr 一个空的数组传进去
* @param string $regular 一个正则表达式,对应文件名,例如'#\\.html$#'
* @param string $content_regular 一个正则表达式,对应文件内容,例如'#内容标题#',
* 如果使用这个参数,文件编码要统一
*
* @return 从参数arr中取结果
*/
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);
}
}


}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值