首頁  >  文章  >  php框架  >  關於xampp環境下thinkphp5二維碼的生成方法

關於xampp環境下thinkphp5二維碼的生成方法

藏色散人
藏色散人轉載
2021-02-15 10:13:053060瀏覽

xampp環境下thinkphp5二維碼的生成

前言

由於團隊功能需要,我們需要用php做一個能根據我們的給定的URL產生二維碼的action,過程曲折,做出來之後在這裡總結一下。

開始入手

開始的時候,走了錯誤的方向,當時的想法:既然要生成二維碼,那就要知道二維碼的生成機制,於是我在網上搜二維碼,得到瞭如下結果:
關於xampp環境下thinkphp5二維碼的生成方法

我粗略读了一遍之后顿悟:
显然,这不是我想要的(如果研究这东西,估计未来几周不用干别的了)

步入正軌

我雖然走錯了方向,但是也簡單的了解了二維碼這個東西,那麼我們需要的功能該如何實現呢?這次我決定簡單粗暴一點

關於xampp環境下thinkphp5二維碼的生成方法

Google誠不欺我,在我之前已經有人寫好了這些個功能,於是我開始步入正軌。

整體思路

  • 我們需要的功能在網路上已經有人用php寫好了,就像我們引用think裡面的函式庫一樣,我們只要把網路上能產生二維碼的庫下載下來,然後引用它,就能快速方便的生成二維碼了。思路確定了,開始工作。

筆者發現了兩種方法,最後使用了第二種

方法一:Composer與endroid/QrCode

  • 提到php下載第三方庫,就必須提到composer了,這是php的一個賊厲害的庫管理工具,可以幫助我們下載網上的其他類庫,關於這個神奇的東西,官方文檔當中也有介紹(如下圖)

關於xampp環境下thinkphp5二維碼的生成方法

  • 目前筆者用的是windows環境,按照官方文件當中的連結下載好,開始快樂的一路next,然後問題就來了

關於xampp環境下thinkphp5二維碼的生成方法

這是我在網路上找到的照片(源自菜鳥教學:composer安裝),我安裝的時候,並沒有地址出現,於是我就懵了,這是什麼意思?

思考了一下,我們安裝的這個管理工具是和php聯繫的,並且需要找到菜鳥教程圖片當中的php.exe文件,於是引出了下面的問題:php在哪裡?

  • XAMPP

    百度百科:XAMPP(Apache MySQL PHP PERL)是一個功能強大的網站整合軟體套件。由此可知,我們使用的xampp裡面整合了php,下一步,開始找文件
    關於xampp環境下thinkphp5二維碼的生成方法

#
找到文件,安装完成,在我们的thinphp5文件夹下,输入指令来安装好第三方库

    $ composer require endroid/qr-code

這樣,我們的函式庫文件就載入完畢,進行程式碼開發的話,大家可以參考這篇部落格

http://www.cnbreak.org/biancheng/thinkphp5/wechatwebpage/760.html

#方法二:利用phpqrcode

筆者用的是這​​個方法,用起來也相對簡單(不過在thinkphp6貌似沒辦法使用了),我們在網上直接下載第三方庫

下載鏈接https:// sourceforge.net/projects/phpqrcode/files/releases
官方說明文件http://phpqrcode.sourceforge.net/docs/html/annotated.html

#下載完成後
關於xampp環境下thinkphp5二維碼的生成方法

#注意:一定要是extends目錄
我們用composer下載好的函式庫在vender裡面,外面下載的第三方函式庫只有放在extends裡面才會運作。
如下是第二種方法的程式碼

function qrcode($level = 'L', $size = 4){
    // 导入Phpqrcode插件文件require_once EXTEND_PATH.'phpqrcode/phpqrcode.php';
    
    //设置url
    $url1 = 'https://www.baidu.com/s?wd=666&rsv_spt=1&rsv_iqid=0xfea0cab90000241d&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_sug3=4&rsv_sug1=3&rsv_sug7=100&rsv_sug2=0&rsv_btype=i&inputT=528&rsv_sug4=1203';

    // 容错级别
    $errorCorrectionLevel = $level;
    // 生成图片大小
    $matrixPointSize = intval($size);
    // 生成二维码图片
    $object = new QRcode();
    // 这个一定要加上,清除缓冲区
    ob_end_clean();
    // 第二个参数false的意思是不生成图片文件,如果你写上‘picture.png’则会在根目录下生成一个png格式的图片文件
    $object->png($url1, false, $errorCorrectionLevel, $matrixPointSize, 2);
}

相關參數的意思:

關於xampp環境下thinkphp5二維碼的生成方法

  • $text 是url參數
  • $outfile 預設否,不產生文件,只回傳二維碼圖片,否則需要給儲存路徑
  • $level 二維碼容錯率,預設L(7%)、M(15%)、Q(25%)、H(30%)
  • $size 二維碼圖片大小,預設4
  • $ margin 二維碼空白區域大小
  • $saveabdprint 二維碼儲存並顯示,$outfile必須傳路徑
  • $back_color 背景顏色
  • $fore_color 繪製二維碼的顏色
  • tip:顏色必須傳16進位的色值,並把「#」替換為「0x」; 如#FFFFFF => 0xFFFFFF

#總結

我們想要實現一個功能的時候,一般來說在我們之前都會有人已經寫出這個東西來了,首先自己去研究這個功能的實現思路,然後去想辦法,找到相關的文檔方法,就可以實現功能了。

以上是關於xampp環境下thinkphp5二維碼的生成方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除