日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

ThinkPHP框架整合phpqrcode生成二维码DEMO

發布時間:2025/3/15 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ThinkPHP框架整合phpqrcode生成二维码DEMO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ThinkPHP框架發展到今天功能已經變得是非常強大了,但是ThinkPHP框架中沒有二維碼相關的庫,因此我們可以通過整合phpqrcode來完成生成二維碼的功能。想使用phpqrcode首先就要把phpqrcode代碼包下載下來,大家可以去官網下載,也可以在網絡上搜索進行下載,這里我為大家提供的有一份?phpqrcode代碼包。下載地址:phpqrcode代碼包。

? ? ? ? 下面開始講述如何在ThinkPHP框架中整合phpqrcode生成二維碼,這是我已經整合好的樣例,感興趣的可以下載下來進行學習。

? ? ? ? 下載:ThinkPHP框架整合phpqrcode生成二維碼DEMO

?

1、將phpqrcode整合到ThinkPHP框架

?

在“ThinkPHP\Library\Vendor\”下新建目錄phpqrcode,將phpqrcode代碼壓縮包內容解壓到該文件夾下。

?

2、調用phpqrcode生成二維碼

?

在控制器下或者在“/Application/Common/Common/function.php”添加如下函數方法(本人是在控制器中寫的):

?

[php]?view plain?copy
  • /**?
  • ?????*?調用phpqrcode生成二維碼?
  • ?????*?@param?string?$url?二維碼解析的地址?
  • ?????*?@param?int?$level?二維碼容錯級別?
  • ?????*?@param?int?$size?需要生成的圖片大小?
  • ?????*/??
  • ????public?function?qrcode($url?=?"http://blog.csdn.net/zhihua_w",?$level?=?3,?$size?=?4)??
  • ????{??
  • ????????Vendor('phpqrcode.phpqrcode');??
  • ????????//容錯級別??
  • ????????$errorCorrectionLevel?=?intval($level);??
  • ????????//生成圖片大小??
  • ????????$matrixPointSize?=?intval($size);??
  • ????????//生成二維碼圖片??
  • ????????$object?=?new?\QRcode();??
  • ????????//第二個參數false的意思是不生成圖片文件,如果你寫上‘picture.png’則會在根目錄下生成一個png格式的圖片文件??
  • ????????$object->png($url,?false,?$errorCorrectionLevel,?$matrixPointSize,?2);??
  • ????}??
  • ? ? ? 訪問:http://127.0.0.1/thinkphp_phpqrcode/index.php/Home/Index/qrcode?即可看到二維碼

    ?

    ?

    ? ? ? 到這里已經可以生成二維碼了;如果想對二維碼更加個性化定制的話下面具體說一下png() 函數的使用。

    ?

    [php]?view plain?copy
  • png($text,?$outfile?=?false,?$level?=?QR_ECLEVEL_L,?$size?=?3,?$margin?=?4,?$saveandprint=false,?$back_color?=?0xFFFFFF,?$fore_color?=?0x000000);??
  • ?

    ①?第一個參數$text:就是上面代碼里的URL網址參數;

    ②?第二個參數$outfile:默認為否;不生成文件;只將二維碼圖片返回;否則需要給出存放生成二維碼圖片的路徑;

    ③?第三個參數$level:默認為L;這個參數可傳遞的值分別是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%);這個參數控制二維碼容錯率;不同的參數表示二維碼可被覆蓋的區域百分比。利用二維維碼的容錯率;我們可以將頭像放置在生成的二維碼圖片任何區域;

    ④?第四個參數$size:控制生成圖片的大小;默認為4;

    ⑤?第五個參數$margin:控制生成二維碼的空白區域大小;

    ⑥?第六個參數$saveandprint:保存二維碼圖片并顯示出來;$outfile必須傳遞圖片路徑;

    ⑦?第七個參數$back_color:背景顏色;

    ⑧?第八個參數$fore_color:繪制二維碼的顏色;

    ? ? ?注:第七、第八個參數需要傳16進制是色值;并且要把“#”替換為“0x”
    ? ? ? ? ? ? ?例如:
    ? ? ? ? ? ? ? ? ? ? ? ? 白色:#FFFFFF ?=> ?0xFFFFFF ?
    ? ? ? ? ? ? ? ? ? ? ? ? 黑色:#000000 ?=> ?0x000000?

    如果想了解更多用法,可以直接參考官方網站源代碼了;http://phpqrcode.sourceforge.net/

    3、生成帶logo的二維碼

    ?

    在控制器下或者在“/Application/Common/Common/function.php”添加如下函數方法(本人是在控制器中寫的):

    [php]?view plain?copy
  • /**?
  • ?????*?生成帶logo的二維碼圖片?
  • ?????*/??
  • ????public?function?qrcodeWithPicture()??
  • ????{??
  • ????????Vendor('phpqrcode.phpqrcode');??
  • ????????$object?=?new?\QRcode();??
  • ????????//二維碼內容??
  • ????????$url?=?'http://blog.csdn.net/zhihua_w';??
  • ????????//容錯級別??
  • ????????$errorCorrectionLevel?=?'L';??
  • ????????//生成圖片大小??
  • ????????$matrixPointSize?=?6;??
  • ????????//生成一個二維碼圖片??
  • ????????$object->png($url,?'zhihua_w.png',?$errorCorrectionLevel,?$matrixPointSize,?2);??
  • ??
  • ????????//準備好的logo圖片,本人放在了根目錄下??
  • ????????$logo?=?'logo.png';??
  • ????????//已經生成的原始二維碼圖,也在根目錄下??
  • ????????$qrcode?=?'zhihua_w.png';??
  • ????????//logo圖片存在??
  • ????????if?($logo?!==?FALSE)?{??
  • ????????????$qrcode?=?imagecreatefromstring(file_get_contents($qrcode));??
  • ????????????$logo?=?imagecreatefromstring(file_get_contents($logo));??
  • ????????????$qrcode_width?=?imagesx($qrcode);???//二維碼圖片寬度??
  • ????????????$qrcode_height?=?imagesy($qrcode);??//二維碼圖片高度??
  • ????????????$logo_width?=?imagesx($logo);???????//logo圖片寬度??
  • ????????????$logo_height?=?imagesy($logo);??????//logo圖片高度??
  • ????????????$logo_qr_width?=?$qrcode_width?/?5;??
  • ????????????$scale?=?$logo_width?/?$logo_qr_width;??
  • ????????????$logo_qr_height?=?$logo_height?/?$scale;??
  • ????????????$from_width?=?($qrcode_width?-?$logo_qr_width)?/?2;??
  • ????????????//重新組合圖片并調整大小??
  • ????????????imagecopyresampled($qrcode,?$logo,?$from_width,?$from_width,?0,?0,?$logo_qr_width,??
  • ????????????????$logo_qr_height,?$logo_width,?$logo_height);??
  • ????????}??
  • ????????//輸出圖片??
  • ????????imagepng($qrcode,?'zhihua_w_logo.png');??
  • ????????echo?'<img?src="http://127.0.0.1/thinkphp_phpqrcode/zhihua_w_logo.png">';??
  • ????}??
  • ?

    方法思路:先調用phpqrcode生成一張二維碼,再使用php的image相關函數將logo圖片添加到生成的二維碼圖片上。

    ?

    至此,此項目完滿結束!

    轉載于:https://www.cnblogs.com/wangluochong/p/7806557.html

    總結

    以上是生活随笔為你收集整理的ThinkPHP框架整合phpqrcode生成二维码DEMO的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。