当前位置: 代码迷 >> 综合 >> 封装的二维码生成
  详细解决方案

封装的二维码生成

热度:90   发布时间:2024-01-21 12:13:54.0
<?phpnamespace app\admin\controller;class Qrcode
{//表示项目主目录名称,其他表示二维码的配置项private $config = ['level'=>'L','size'=>"12",'margin'=>"2",'save'=>true,'upload_url_name'=>'uploads'];//默认配置/**$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');//引入文件$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 '/'.$config['upload_url_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;}}

 

  相关解决方案