这篇文章给大家分享的是有关Tp框架生成二维码的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
(一) 安装qr-code扩展
composer require endroid/qr-code
(二)代码实现(代码亲测有效)
<?php namespace app\common\service; use Jrk\Random; use Endroid\QrCode\QrCode; use think\Exception; class QrcodeSrvice { /** * @param $text * @param int $size * @param bool $domain * @return string * @author: Hhy <jackhhy520@qq.com> * @describe:生成普通二维码 */ public static function make_qrcode($text,$size=105,$domain=false){ $img_name = Random::alnum(15); $n = date("Ym"); $dir= app()->getRootPath()."public/qrcode/code/".$n; //判断目录是否存在 if (!is_dir($dir)) { mkdir($dir, 0777, true); } $pathname = $dir."/" . $img_name . '.png'; $qrCode = new QrCode(); $qrCode->setText($text) ->setSize($size) ->setPadding(15) ->setErrorCorrection('high') ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0)) ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0)) ->setImageType(QrCode::IMAGE_TYPE_PNG); try { $qrCode->save($pathname); $str="/qrcode/code/".$n."/". $img_name . '.png'; if ($domain){ return request()->domain().$str; }else{ return $str; } } catch (\Endroid\QrCode\Exceptions\ImageTypeInvalidException $exception) { return ""; } } /** * @param $text * @param $logo * @return string * @throws Exception * @author: Hhy <jackhhy520@qq.com> * @describe:生成带logo 的二维码 */ public static function QrCodeWithLogo($text,$logo,$domain=false){ if (!file_exists($logo)){ exception("logo地址不存在"); } $img_name = Random::alnum(15); $n = date("Ym"); $dir= app()->getRootPath()."public/qrcode/".$n; //判断目录是否存在 if (!is_dir($dir)) { mkdir($dir, 0777, true); } $pathname = $dir."/" . $img_name . '.png'; $qrCode = new QrCode(); $qrCode->setText($text) ->setSize(300) ->setLogo($logo) ->setLogoSize(60) ->setErrorCorrection('high') ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0)) ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0)) ->setImageType(QrCode::IMAGE_TYPE_PNG); $qrCode->save($pathname); $str="/qrcode/".$n."/". $img_name . '.png'; if ($domain){ return request()->domain().$str; }else{ return $str; } } }
感谢各位的阅读!关于Tp框架生成二维码的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。