ThinkPHP6使用最新版本Endroid/QrCode生成二維碼的方法實(shí)例
前言
TP現(xiàn)用的、用composer包管理的生成二維碼的工具包,帶來和原生PHP使用qrcode差距不大的體驗(yàn)。不多說,看代碼。
一、使用composer下載擴(kuò)展包
composer require endroid/qr-code
二、實(shí)現(xiàn)代碼及方法注釋
use Endroid\QrCode\Color\Color; use Endroid\QrCode\Encoding\Encoding; use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelLow; use Endroid\QrCode\QrCode; use Endroid\QrCode\Label\Label; use Endroid\QrCode\Logo\Logo; use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin; use Endroid\QrCode\Writer\PngWriter;
/** * 生成二維碼 * @param string $url [字符] * @param [type] $is_save [是否保存] * @param [type] $pid [唯一標(biāo)識符] * @return string [type] [返回圖片標(biāo)簽字符串] */ public function mkCode(string $url = 'https://www.baidu.com', $is_save = false, $pid = 0) { $writer = new PngWriter(); $qrCode = QrCode::create($url)//跳轉(zhuǎn)的url地址 ->setEncoding(new Encoding('UTF-8')) //設(shè)置編碼格式 ->setErrorCorrectionLevel(new ErrorCorrectionLevelLow()) //設(shè)置糾錯級別為低 ->setSize(150) //大小 ->setMargin(20) //邊距 ->setRoundBlockSizeMode(new RoundBlockSizeModeMargin()) //設(shè)置圓輪大小邊距 ->setForegroundColor(new Color(0, 0, 0)) //前景色 ->setBackgroundColor(new Color(255, 255, 255)); //背景色 $logo = Logo::create('static/haha.jpg') //logo的照片路徑 ->setResizeToWidth(20); //logo的大小 $label = Label::create('測試掃碼') //二維碼下面的文字 ->setTextColor(new Color(0, 0, 0)); //文字的顏色 $result = $writer->write($qrCode, $logo, $label); header('Content-Type: '.$result->getMimeType()); $result->getString(); if(!$is_save){ $dataUri = $result->getDataUri(); //DATA-URI 是指可以在Web 頁面中包含圖片但無需任何額外的HTTP 請求的一類URI. return "<img src='$dataUri' alt='測試二維碼'>"; } $file_path = 'static/qrcode/'; if(!file_exists($file_path)){ mkdir($file_path,0777,true); } $qrcode='qrcode_'.time().mt_rand(1,9).'.png'; //二維碼文件名稱,mt_rand()運(yùn)行速度要比rand()快很多 $result->saveToFile('static/qrcode/'.$qrcode); }
cv就能訪問使用。
三、效果(掃碼會跳轉(zhuǎn)到百度)
由于平臺限制,不予顯示二維碼。
需要注意的是:一定要加http(s)://在網(wǎng)址中,否則無法正常跳轉(zhuǎn)。業(yè)務(wù)中掃碼可以實(shí)現(xiàn)調(diào)用各種的接口,擴(kuò)展性還是比較強(qiáng),不過總結(jié)最近理解的一句話:
任何技術(shù)都離不開業(yè)務(wù)。
如果想要實(shí)現(xiàn)掃碼跳轉(zhuǎn)小程序的話,可以參考這篇文章:
此外,本站另有一款php實(shí)現(xiàn)的二維碼生成工具,感興趣的朋友可以看一下
http://tools.jb51.net/transcoding/jb51qrcode
- ThinkPHP6使用JWT+中間件實(shí)現(xiàn)Token驗(yàn)證實(shí)例詳解
- Thinkphp6 配置并使用redis圖文詳解
- thinkphp6中Redis 的基本使用方法詳解
- ThinkPHP6.0前置、后置中間件區(qū)別
- ThinkPHP6.0 重寫URL去掉Index.php的解決方法
- 基于thinkphp6.0的success、error實(shí)現(xiàn)方法
- thinkphp3.2框架集成QRcode生成二維碼的方法分析
- Thinkphp使用Zxing擴(kuò)展庫解析二維碼內(nèi)容圖文講解
- Thinkphp3.2.3整合phpqrcode生成帶logo的二維碼
相關(guān)文章
php數(shù)組函數(shù)序列之a(chǎn)rray_values() 獲取數(shù)組元素值的函數(shù)與方法
array_keys() 函數(shù)返回包含數(shù)組中所有鍵名的一個新數(shù)組。如果提供了第二個參數(shù),則只返回鍵值為該值的鍵名2011-10-10PHP實(shí)現(xiàn)圖片壓縮的兩則實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)圖片壓縮的兩則實(shí)例,很有實(shí)用價值,值得借鑒學(xué)習(xí),需要的朋友可以參考下2014-07-07PHP+Apache實(shí)現(xiàn)二級域名之間共享cookie的方法
這篇文章主要介紹了PHP+Apache實(shí)現(xiàn)二級域名之間共享cookie的方法,涉及Apache的配置、hosts修改及php cookie操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07深入file_get_contents函數(shù)抓取內(nèi)容失敗的原因分析
本篇文章是對file_get_contents函數(shù)抓取內(nèi)容失敗的原因進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06用PHP寫的基于Memcache的Queue實(shí)現(xiàn)代碼
用PHP寫的基于Memcache的Queue實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-11-11PHP回調(diào)函數(shù)概念與用法實(shí)例分析
這篇文章主要介紹了PHP回調(diào)函數(shù)概念與用法,簡單介紹了回調(diào)函數(shù)的概念、原理,并結(jié)合實(shí)例形式分析了回調(diào)函數(shù)的相關(guān)使用技巧,需要的朋友可以參考下2017-11-11