PHP是世界上最好的语言

加载目录下的文件

2018-10-30  本文已影响2人  会长__
<?php
/**
 * User: yuzhao
 * CreateTime: 2018/10/30 上午11:58
 * Email: shixi_yuzhao@staff.weibo.com
 * Description:
 */

class FileTool {

    /**
     * User: yuzhao
     * CreateTime: 2018/10/30 下午12:22
     * @var
     * Email: shixi_yuzhao@staff.weibo.com
     * Description: 文件夹相对路径
     */
    private $path;

    /**
     * FileTool constructor.
     */
    public function __construct($path='')
    {
        $this->path = $path;
    }

    /**
     * User: yuzhao
     * CreateTime: 2018/10/30 下午12:21
     * @param $path
     * Email: shixi_yuzhao@staff.weibo.com
     * Description: 返回当前对象
     */
    public static function instance($path='') {
        return new FileTool($path);
    }

    /**
     * User: yuzhao
     * CreateTime: 2018/10/30 下午12:18
     * @param $dir
     * Email: shixi_yuzhao@staff.weibo.com
     * Description: 加载目录下的所有文件
     */
    public function includeAll($dir){
        foreach ($dir as $key => $value) {
            $value = $this->path.$value;
            //打开文件夹
            $handler = opendir($value);
            //遍历脚本文件夹下的所有文件
            while( (($filename = readdir($handler)) !== false) ){
                //如果文件为php脚本文件
                if( substr($filename,-4) === '.php' ){
                    if ($filename == 'FileTool.php') {
                        continue;
                    }
                    //将文件包含进来
                    require_once( $value.'/'.$filename );
                    print_r($value.'/'.$filename."\n");
                }
            }
            //关闭文件夹
            closedir($handler);
        }
    }
}

使用样例

// 将自动导出数据api文件加载进来
FileTool::instance('需要从哪里开始加载')->includeAll(array(
    '/子目录1','/子目录2
));
上一篇下一篇

猜你喜欢

热点阅读