下面由thinkphp框架教程欄目給大家介紹Tp框架生成二維碼的方法,希望對需要的朋友有所幫助!
(一) 安裝qr-code擴展
composer require endroid/qr-code
(二)代碼實現(代碼親測有效)
<?php namespace appcommonservice; use JrkRandom; use EndroidQrCodeQrCode; use thinkException; 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?(EndroidQrCodeExceptionsImageTypeInvalidException?$exception)?{ ????????????return?""; ????????} ????} ????/** ?????*?@param?$text ?????*?@param?$logo ?????*?@return?string ?????*?@throws?Exception ?????*?@author:?Hhy?<jackhhy520> ?????*?@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; ????????} ????} }</jackhhy520>
? ? ? ? ? ? ? ? ? ? ? ? ? ?
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END