php封装类,phpqrcode生成二维码并保存到服务器

以前也用phpqrcode生成二维码,但是并没有将这个功能进行过封装,因此每次用的时候又要需要重新看文档,重复写一遍,后来觉得太麻烦,为何不将这一些常用的类进行封装,以后用的时候只要关注自身的业务逻辑不挺好吗!

我是基于tp5编写的扩展类,因此如果你也是用这个框架,可以直接将扩展类放在extend目录下即可,

存放目录:

php封装类,phpqrcode生成二维码并保存到服务器_第1张图片

2.引用phpqrcode类,这个类你可以下载:https://sourceforge.net/projects/phpqrcode/files/

php封装类,phpqrcode生成二维码并保存到服务器_第2张图片

 

3.准备工作做好以后,上代码

'L','size'=>"12",'margin'=>"2",'save'=>true,'total_project_name'=>'tutaiservicer'];//默认配置



	/*
	*$content: 表示要生成二维码的字符串
	*$file_url:表示二维码上传的路径,从项目主目录名下一级算起
	*$name:表示最里面那一级的目录,主要作用如不填则默认为当天日期,填写了则为填写的目录
	*$end_name: 表示文件名,不填写则系统随机
	*$config: 表示二维码的配置项
	**/
	//根据字符串创建二维码
	public function create_code($content='',$file_url='',$name='',$end_name='',$config = []){
        if($name == ''){
            $name = date('Ymd',time());
        }
        if(empty($config)){
            $config = $this->config;
        }
        if($end_name == ''){
        	$end_name = date("YmdHis").mt_rand(1000,9999).'.png';
        }
        $file_url = $file_url."/".$name."/";
        $get_file_url = $this->deal_file_url($file_url);
        Vendor('phpqrcode.phpqrcode');//引入文件
        $content = $content;
        $outfile = $get_file_url['b'].$end_name;
        $level   = $config['level'];
        $size    = $config['size'];
        $margin  = $config['margin'];
        $save    = $config['save'];
        $res = \QRcode::png($content, $outfile, $level, $size, $margin, $save);
        return $_SERVER['SERVER_NAME'].'/'.$config['total_project_name'].'/'.$file_url.'/'.$end_name;//切记:如果你的项目是将域名直接解析到项目的public目录下的,需要你改一些返回的路劲,如果是解析到项目根目录下的情况,则不需要改
	}


    //处理url以便创建目录
    public function deal_file_url($file_url){
        $url_arr = explode('/',$file_url);
        foreach($url_arr as $key=>$val){
            if($val != '..' && $val != '.'  && $val != ''){
                $data[] = $val;
            }
        }
        $file_url = ROOT_PATH.implode("\\",$data).'\\';
        $up_url = str_replace('\\',"/",$file_url);
        $data_arr['a'] = $file_url;
        $data_arr['b'] = $up_url;
        if(!is_dir($file_url)){
            mkdir($file_url,0777,true);
        }
        return $data_arr;
    }


}

 

4.虽然功能简单,但是进行封装了以后,对于下次用到的时候还是很有帮助的和便捷的

你可能感兴趣的:(php封装类,phpqrcode生成二维码并保存到服务器)