使用PHP語言生成二維碼,還是挺有難度的,當(dāng)然調(diào)用生成二維碼圖片的接口(比如:聯(lián)圖網(wǎng)http://www.liantu.com/的接口)除外,如果自己寫代碼生成,真的無從下手。
然而,我們可以使用phpqrcode這個(gè)現(xiàn)成的類文件,PHP二維碼生成類庫,利用它可以輕松生成二維碼。(推薦學(xué)習(xí):web前端視頻教程)
phpqrcode類文件下載,下載地址:https://sourceforge.net/projects/phpqrcode
PHP環(huán)境必須開啟支持GD2擴(kuò)展庫支持(一般情況下都是開啟狀態(tài))
下載下來的類文件是一個(gè)壓縮包,里邊包含很多文件和演示程序,我們只需要里邊的phpqrcode.php這一個(gè)文件就可以生成二維碼了。它是一個(gè)多個(gè)類的集合文件,我們需要用到里邊的QRcode類(第2963行)的png()方法(第3090行):
public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) { $enc = QRencode::factory($level, $size, $margin); return $enc->encodePNG($text, $outfile, $saveandprint=false); }
第1個(gè)參數(shù)$text:二維碼包含的內(nèi)容,可以是鏈接、文字、json字符串等等;
第2個(gè)參數(shù)$outfile:默認(rèn)為false,不生成文件,只將二維碼圖片返回輸出;否則需要給出存放生成二維碼圖片的文件名及路徑;
第3個(gè)參數(shù)$level:默認(rèn)為L,這個(gè)參數(shù)可傳遞的值分別是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%),這個(gè)參數(shù)控制二維碼容錯(cuò)率,不同的參數(shù)表示二維碼可被覆蓋的區(qū)域百分比,也就是被覆蓋的區(qū)域還能識(shí)別;
第4個(gè)參數(shù)$size:控制生成圖片的大小,默認(rèn)為4;
第5個(gè)參數(shù)$margin:控制生成二維碼的空白區(qū)域大??;
第6個(gè)參數(shù)$saveandprint:保存二維碼圖片并顯示出來,$outfile必須傳遞圖片路徑;