`
xieye
  • 浏览: 831322 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

 
阅读更多
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);
            }
        }
        
        
    }
    
    
}

分享到:
评论

相关推荐

    基于多线程技术的Linux环境下文件查找器find的设计与实现毕业论文.docx

    基于多线程技术的 Linux 环境下文件查找器 find 的设计与实现 本文主要介绍了基于多线程技术的 Linux 环境下文件查找器 find 的设计与实现。Find 命令是 Unix 操作系统中的一种常用命令,能够实现多种条件的查询,...

    jdk-8u333-linux-x64.tar.gz

    1. **下载压缩包**:将压缩包下载到Linux机器上,通常放在家目录的Downloads文件夹下。 2. **解压**:使用`tar -zxvf jdk-8u333-linux-x64.tar.gz`命令将其解压到合适的目录,比如`/usr/lib/jvm`。 3. **设置环境...

    强化学习简单实现(C++)

    "hello_rl-master"这个文件夹很可能是项目的根目录,通常会包含源代码文件、头文件、Makefile或CMakeLists.txt构建脚本、测试文件、数据集以及README文档等。在源代码中,可能会有表示环境的类、智能体的类、以及...

    最新版linux logstash-7.16.1-linux-x86_64.tar.gz

    2. 配置文件:在解压目录下的`config`文件夹内,可以修改`logstash.yml`进行全局配置。 3. 输入与输出插件配置:在`config`目录下创建`pipeline.conf`,定义输入、过滤和输出插件。 4. 启动Logstash:执行`bin/...

    jdk-22_linux-x64_bin.tar.gz

    在Linux环境下安装JDK 22,首先需要访问Oracle官方网站下载对应版本的`.tar.gz`文件,例如"jdk-22_linux-x64_bin.tar.gz"。然后,通过命令行工具进行解压和安装: ```bash # 下载文件到指定目录 wget ...

    linux环境下全自动化部署mysql脚本

    总结来说,这个脚本提供了一种高效、灵活的方法来在Linux环境下自动化部署MySQL,通过调整`install.ini`和`config_example`文件,你可以轻松地适应不同的项目需求。同时,`logs`文件夹和`auto_install.sh`的详细日志...

    深度强化学习mujoco平台搭建指南

    随后,从Mujoco官方网站下载mjpro150prolinux,并将其解压到家目录下的.mujoco文件夹中。同时,将许可证文件(key)放置于mjpro150目录下的bin目录。为了使系统能够找到Mujoco库,需要编辑.bashrc文件,添加环境变量...

    大势至共享文件审计系统

    11、集成开放的功能扩展接口,可以与我公司的商用安全计算机、外来电脑控制系统相互配合,强化对共享文件的保护。 四、领先优势 大势至共享文件审计系统与国内同类系统相比,主要优势如下: 1、大势至共享文件...

    linux系统基础强化:00虚拟机的安装和使用.ppt

    Linux系统基础强化,虚拟机的安装与使用是学习和理解操作系统以及进行软件测试的重要环节。在深入探讨这一主题之前,让我们先明确虚拟机的概念。 虚拟机(Virtual Machine)是一种通过软件模拟完整硬件系统功能的...

    大势至服务器共享文件访问记录软件 v3.1.zip

    4、大势至共享文件审计系统只需要安装在提供共享文件的服务器上即可监控局域网内所有用户访问服务器文件的各种操作,不需要在客户端安装,不需要调整现有的网络结构,也不需要额外其他设备,从而一方面极大地节省了...

    使用nautilus知识介绍

    Nautilus文件管理器,作为GNOME桌面环境下默认的图形界面文件管理工具,它为Linux用户提供了一个高效而直观的方式来管理和浏览文件系统。 首先,Nautilus是GNOME桌面环境的一部分,因此它与GNOME的风格和功能集成度...

    node-v12.0.0-linux-x86.tar.gz

    《深入理解Node.js v12.0.0在Linux x86环境下的安装与应用》 在编程领域,Node.js以其高效、异步非阻塞I/O和强大的JavaScript支持,成为了构建高性能网络应用的首选平台。本文将详细介绍如何在Linux x86环境下安装...

    mongodb-linux-x86-64-rhel62-4.2.0.tgz

    解压 "mongodb-linux-x86_64-rhel62-4.2.0.tgz" 后,通常会得到一个包含可执行文件、配置文件、日志文件夹、数据文件夹等在内的完整 MongoDB 服务器安装结构。安装和启动 MongoDB,你需要配置 `mongod.conf` 文件,...

    基于模仿学习+深度强化学习构建AI掼蛋系统

    【作品名称】:基于模仿学习+深度强化学习构建AI掼蛋系统 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 基于深度...

    华为HN8145Vjffs2.tar.gz电信备份

    标签“HN8145V”和“jffs2.tar.gz”强化了我们对备份文件来源和格式的理解。HN8145V是华为的一款光猫产品,而jffs2.tar.gz则是备份的具体类型。 压缩包内的文件名称列表提供了关于备份内容的一些线索: 1. `backup_...

    1180300811-孙骁-lab12

    - 虚拟操作系统:Ubuntu,一个流行的Linux发行版,用于学习C语言编程和系统操作。 3. 开发工具: - GCC:GNU Compiler Collection,是Linux下的C编译器,用于将源代码转换为可执行程序。 - GDB:GNU Debugger,...

    Showallfiles

    标题“Showallfiles”指的是一个工具或程序,其主要功能是帮助用户在计算机上显示所有类型的文件,包括通常被系统隐藏的文件。在操作系统中,有些文件为了保持系统的稳定性和安全,会被设置为隐藏状态,普通用户在...

    Dropbox 1.0.20

    1.0.20版可能也强化了这些安全措施,确保用户数据的安全。 6. 共享链接:用户可以通过生成共享链接来与他人分享文件或文件夹,无需对方拥有Dropbox账户。这为非Dropbox用户提供了便利,也简化了协作流程。 7. 移动...

    协通XT800服务端 v5.2.0.zip

    3.文件共享:可跨局域网建立类似Windows网上邻居的共享环境,并提供多种文件共享的安全策略,包括文件夹密码保护、按联系人关系或黑白名单等等。 4.远程文件管理功能:管理远程电脑文件,支持上传、下载目录和文件...

Global site tag (gtag.js) - Google Analytics