自己做工具--封装PHP的工具类

更多精彩请访问,请一定记得 star :https://github.com/whm19940308/phpTools
个人博客:https://www.whmblog.cn
转载请标明原文链接:https://www.jianshu.com/p/8ab3dce8d6f1

一、使用示例

// 引入两个核心文件
require_once './_autoload.php';
require_once './functions.php';

// 使用示例
// 如调用DateTools工具类里的方法,调用示例如下
$date_tools = new DateTools();
var_dump($date_tools->getSomeZeroTimeStamp($str=''));

二、代码目录

自己做工具--封装PHP的工具类.png

主要有几大工具类:
ArrayTools.php —— 数组工具类
CharacterTools.php —— 英文字母工具类
CurlTools.php —— 跟curl相关的工具类
DateTools.php —— 时间工具类
EncryptTools.php —— 加密工具类
FileTools.php —— 文件工具类
HttpTools.php —— 与http协议相关的工具类
ImageTools.php —— 图片工具类
MapTools.php —— 地图工具类
NumberTools.php —— 数字工具类
SendCodeTools.php —— 聚合数据发送手机验证码工具类
ServerTools.php —— 与服务器相关的工具类
StringTools.php —— 字符串相关操作的工具类
UploadTools.php —— 上传文件工具类
VerifyTools.php —— 校验工具类,如验证ip、手机、邮箱等
XmlTools.php —— 操作xml相关的工具类
ZipTools.php —— Zip压缩解压工具类

三、ArrayTools.php —— 数组工具类

四、VerifyTools.php —— 校验工具类,如验证ip、手机、邮箱等

五、UploadTools.php —— 上传文件工具类

upload_name = $_FILES["file"]["name"]; //取得上传文件名
        $this->upload_filetype = $_FILES["file"]["type"];
        $this->upload_tmp_name = $_FILES["file"]["tmp_name"];
        $this->allow_uploadedfile_type = array('jpeg','jpg','png','gif','bmp','doc','xls','csv','zip','rar','txt','wps');
        $this->upload_file_size = $_FILES["file"]["size"];
        $this->upload_target_dir="./upload";
    }


    //文件上传
    public function upload_file()
    {
        if(!empty($_FILES)){
            $upload_filetype = $this->getFileExt($this->upload_name);//获取文件扩展名
            if(in_array($upload_filetype,$this->allow_uploadedfile_type))//判断文件类型是否符合要求
            {
                if($this->upload_file_size < $this->allow_uploaded_maxsize)//判断文件大小是否超过允许的最大值
                {
                    if(!is_dir($this->upload_target_dir))//如果文件上传目录不存在
                    {
                        mkdir($this->upload_target_dir,true);//创建文件上传目录
                        chmod($this->upload_target_dir,0777);//改权限
                    }
                    $this->upload_final_name = date("YmdHis").rand(0,100).'.'.$upload_filetype;//生成随机文件名
                    $this->upload_target_path = $this->upload_target_dir."/".$this->upload_final_name;//文件上传目标目录
                    if(!move_uploaded_file($this->upload_tmp_name,$this->upload_target_path))//文件移动失败
                    {
                        echo "

文件上传失败!

"; } else { echo "

文件上传成功!

"; } } else { echo("

文件太大,上传失败!

"); } } else { echo("

仅支持一下文件类型,请重新选择:
".implode(',',$this->allow_uploadedfile_type)."

"); } }else{ echo("

请上传文件!

"); } } /** *获取文件扩展名 *@param String $filename 要获取文件名的文件 */ public function getFileExt($filename){ $info = pathinfo($filename); return @$info["extension"]; } }

六、ZipTools.php —— Zip压缩解压工具类

open($zipName, ZipArchive::CREATE) === TRUE){
    //    addFileToZip($path, $zip); // 调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
    //    $zip->close(); // 关闭处理的zip文件
    //    }
    public function addFileToZip($path,$zip){

        // 转化 \ 为 / ,适应 windows
        $file_tools = new FileTools();
        $path = $file_tools->dirPath($path);


        // 判断是不是目录,是的话递归进入
        if(is_dir($path)) {
            $handler = opendir($path); //打开当前文件夹由$path指定。
            while (($filename = readdir($handler)) !== false) {
                if ($filename != "." && $filename != "..") {
                    //文件夹文件名字为'.'和'..',不要对他们进行操作
                    if (is_dir($path . "/" . $filename)) {
                        // 如果读取的某个对象是文件夹,则递归
                        $this->addFileToZip($path . "/" . $filename, $zip);
                    } else { //将文件加入zip对象
                        $zip->addFile($path . "/" . $filename);
                    }
                }
            }
        }else{
            $zip->addFile($path);
        }
        @closedir($path);

        echo 'zip压缩成功';

    }


    /**
     * @desc 对相应目录文件进行压缩
     * @param $path
     * @param $zip
     **/
    // php 从zip压缩文件中提取文件
    // 使用示例:
    // $filename = $_SERVER['DOCUMENT_ROOT'].'/unzip.zip';
    // $path = $_SERVER['DOCUMENT_ROOT'].'/unzip';
    // unZip($filename,$path );
    public function unZip($filename = '', $path = ''){

        //将文件名和路径转成windows系统默认的gb2312编码,否则将会读取不到
        $filename = iconv("utf-8","gb2312",$filename);
        $path = iconv("utf-8","gb2312",$path);

        if (!file_exists($filename)) {
            return false;
        }

        $zip = new ZipArchive;
        if ($zip->open($filename) === TRUE) {//中文文件名要使用ANSI编码的文件格式

            $zip->extractTo($path);//提取全部文件
            $zip->close();
            echo 'zip解压成功';

        } else {

            echo 'zip解压失败或没有这个zip文件';

        }

    }


}

更多精彩请访问,请一定记得 star : https://github.com/whm19940308/phpTools
个人博客:https://www.whmblog.cn
转载请标明原文链接:https://www.jianshu.com/p/8ab3dce8d6f1

你可能感兴趣的:(自己做工具--封装PHP的工具类)