🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
首先下载这个类:[http://phpqrcode.sourceforge.net/](http://phpqrcode.sourceforge.net/) phpqrcode.php 放在extend目录下面,如果有二级目录qrcode/phpqrcode.php就 Loader::import('qrcode.phpqrcode', EXTEND_PATH); 一、上代码: ```php /** * @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函数 ```php /** * 获取上传资源的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; } ``` 第三步:使用 ```php /*二维码接口*/ 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); } ```