ThinkPHP5 生成二维码
2021/4/7 20:08:25
本文主要是介绍ThinkPHP5 生成二维码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
首先下载这个类:http://phpqrcode.sourceforge.net/
phpqrcode.php 放在extend目录下面,如果有二级目录qrcode/phpqrcode.php就 Loader::import(‘qrcode.phpqrcode’, EXTEND_PATH);
一、上代码:
/** * @param $text 文本的内容 * @param string $logo logo图片 * @return string TP5-PHP生成二维码 */ public function code($text, $logo = '') { Loader::import('phpqrcode', EXTEND_PATH); //二维码图片保存路径 $pathname = APP_PATH . '/../public/upload/'; if (!is_dir($pathname)) { //若目录不存在则创建之 mkdir($pathname); } //二维码图片保存路径(若不生成文件则设置为false) $name = "/qrcode_" . time() . ".png"; $filename = $pathname . $name; //二维码容错率,默认L $level = "L"; //二维码图片每个黑点的像素,默认4 $size = '10'; //二维码边框的间距,默认2 $padding = 2; //保存二维码图片并显示出来,$filename必须传递文件路径 $saveandprint = true; //生成二维码图片 \QRcode::png($text, $filename, $level, $size, $padding, $saveandprint); //二维码logo $QR = imagecreatefromstring(file_get_contents($filename)); // $logo = imagecreatefromstring(file_get_contents($logo)); // $QR_width = imagesx($QR); // $QR_height = imagesy($QR); // $logo_width = imagesx($logo); // $logo_height = imagesy($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); // imagepng($QR, $filename); return cdnurl('/upload' . $name, true); }
第二步:cdnurl函数
/** * 获取上传资源的CDN的地址 * @param string $url 资源相对地址 * @param boolean $domain 是否显示域名 或者直接传入域名 * @return string */ function cdnurl($url, $domain = false) { $regex = "/^((?:[a-z]+:)?\/\/|data:image\/)(.*)/i"; $cdnurl = \think\Config::get('upload.cdnurl'); $url = preg_match($regex, $url) || ($cdnurl && stripos($url, $cdnurl) === 0) ? $url : $cdnurl . $url; if ($domain && !preg_match($regex, $url)) { $domain = is_bool($domain) ? request()->domain() : $domain; $url = $domain . $url; } return $url; }
第三步:使用
/*二维码接口*/ public function qrcode() { $data = array(); $data['productid'] = mt_rand(1, 5); /*产品id 1-5*/ $data['user_id'] = mt_rand(1, 200); /*用户ID*/ $data['type'] = 1; /*1未核销 2已核销 3已锁定*/ $json = json_encode($data); $qrcodeurl = self::code($json); header("Location: " . $qrcodeurl); }
这篇关于ThinkPHP5 生成二维码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-29env: php: no such file or directory
- 2024-03-01php foreach break
- 2024-02-26Exception参数 php-icode9专业技术文章分享
- 2023-12-30PHP文件批量上传-icode9专业技术文章分享
- 2023-12-30thinkphp6 withJoin-icode9专业技术文章分享
- 2023-12-27MagicArray:像php一样,让Go业务代码不再卷!
- 2023-11-18centos7编译安装PHP教程。
- 2023-11-18centos7编译安装phpMyAdmin教程。
- 2023-10-13唱衰这么多年,PHP 仍然还是你大爷!
- 2023-07-25PHP8,性能更好,语法更好,类型安全更完善