您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。