分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

thinkphp3.2二维码扩展

发布时间:2023-09-06 01:44责任编辑:林大明关键词:thinkphp二维码
//简易二维码public function qrcode(){ ???????Vendor(‘phpqrcode.phpqrcode‘); ???????//生成二维码图片 ???????$object = new \QRcode(); ???????$url=‘http://www.shouce.ren/‘;//网址或者是文本内容 ???????$level=3; ???????$size=4; ???????$errorCorrectionLevel =intval($level) ;//容错级别 ???????$matrixPointSize = intval($size);//生成图片大小 ???????$object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2); ???}
<?php//高级使用带logopublic function qrcode(){ ???????Vendor(‘phpqrcode.phpqrcode‘); ???????//生成二维码图片 ???????$object = new \QRcode(); ???????$qrcode_path=‘‘; ???????$file_tmp_name=‘‘; ???????$errors=array(); ???????if(!empty($_POST)){ ???????????$content = trim($_POST[‘content‘]); //二维码内容 ???????????$contentSize=$this->getStringLength($content); ???????????if($contentSize>150){ ???????????????$errors[]=‘字数过长,不能多于150个字符!‘; ???????????} ???????????if(isset($_FILES[‘upimage‘][‘tmp_name‘]) && $_FILES[‘upimage‘][‘tmp_name‘] && is_uploaded_file($_FILES[‘upimage‘][‘tmp_name‘])){ ???????????????if($_FILES[‘upimage‘][‘size‘]>512000){ ???????????????????$errors[]="你上传的文件过大,最大不能超过500K。"; ???????????????} ???????????????$file_tmp_name=$_FILES[‘upimage‘][‘tmp_name‘]; ???????????????$fileext = array("image/pjpeg","image/jpeg","image/gif","image/x-png","image/png"); ???????????????if(!in_array($_FILES[‘upimage‘][‘type‘],$fileext)){ ???????????????????$errors[]="你上传的文件格式不正确,仅支持 png, jpg, gif格式。"; ???????????????} ???????????} ???????????$tpgs=$_POST[‘tpgs‘];//图片格式 ???????????$qrcode_bas_path=‘upload/qrcode/‘; ???????????if(!is_dir($qrcode_bas_path)){ ???????????????mkdir($qrcode_bas_path, 0777, true); ???????????} ???????????$uniqid_rand=date("Ymdhis").uniqid(). rand(1,1000); ???????????$qrcode_path=$qrcode_bas_path.$uniqid_rand. "_1.".$tpgs;//原始图片路径 ???????????$qrcode_path_new=$qrcode_bas_path.$uniqid_rand."_2.".$tpgs;//二维码图片路径 ???????????if(Helper::getOS()==‘Linux‘){ ???????????????$mv = move_uploaded_file($file_tmp_name, $qrcode_path); ???????????}else{ ???????????????//解决windows下中文文件名乱码的问题 ???????????????$save_path = Helper::safeEncoding($qrcode_path,‘GB2312‘); ???????????????if(!$save_path){ ???????????????????$errors[]=‘上传失败,请重试!‘; ???????????????} ???????????????$mv = move_uploaded_file($file_tmp_name, $qrcode_path); ???????????} ???????????if(empty($errors)){ ???????????????$errorCorrectionLevel = $_POST[‘errorCorrectionLevel‘];//容错级别 ???????????????$matrixPointSize = $_POST[‘matrixPointSize‘];//生成图片大小 ???????????????$matrixMarginSize = $_POST[‘matrixMarginSize‘];//边距大小 ???????????????//生成二维码图片 ???????????????$object::png($content,$qrcode_path_new, $errorCorrectionLevel, $matrixPointSize, $matrixMarginSize); ???????????????$QR = $qrcode_path_new;//已经生成的原始二维码图 ???????????????$logo = $qrcode_path;//准备好的logo图片 ???????????????if (file_exists($logo)) { ???????????????????$QR = imagecreatefromstring(file_get_contents($QR)); ???????????????????$logo = imagecreatefromstring(file_get_contents($logo)); ???????????????????$QR_width = imagesx($QR);//二维码图片宽度 ???????????????????$QR_height = imagesy($QR);//二维码图片高度 ???????????????????$logo_width = imagesx($logo);//logo图片宽度 ???????????????????$logo_height = imagesy($logo);//logo图片高度 ???????????????????$logo_qr_width = $QR_width / 5; ???????????????????$scale = $logo_width/$logo_qr_width; ???????????????????$logo_qr_height = $logo_height/$scale; ???????????????????$from_width = ($QR_width - $logo_qr_width) / 2; ???????????????????//重新组合图片并调整大小 ???????????????????imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, ???????????????????$logo_qr_height, $logo_width, $logo_height); ???????????????????//输出图片 ???????????????????//header("Content-type: image/png"); ???????????????????imagepng($QR,$qrcode_path); ???????????????????imagedestroy($QR); ???????????????}else{ ???????????????????$qrcode_path=$qrcode_path_new; ???????????????} ???????????}else{ ???????????????$qrcode_path=‘‘; ???????????} ???????} ???????$data=array(‘data‘=>array(‘errors‘=>$errors,‘qrcode_path‘=>$qrcode_path)); ???????$this->assign(‘data‘,$data); ???????$this->display();


首先把扩展文件放进

https://files.cnblogs.com/files/zonglonglong/phpqrcode.rar

thinkphp3.2二维码扩展

原文地址:https://www.cnblogs.com/zonglonglong/p/8514031.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved