thinkphp 3.2 使用phpqrcode生成二維碼,phpqrcode的使用
阿新 • • 發佈:2019-01-23
首先下載phpqrcode,解壓把整個包都放入thinkphp/library/vendor/下
在控制器中新建方法,首先引文phpqrcode檔案
引入後就能直接生成二維碼了,下面是一個例子,生成
上面是生成的二維碼存在本地的,如果想直接輸出到頁面中怎麼做呢?function createcode(){ Vendor('phpqrcode.phpqrcode'); $value = "<h1>一生,是多久</h1>";//二維碼資料 $errorCorrectionLevel = 'H';//糾錯級別:L、M、Q、H $matrixPointSize = 10;//二維碼點的大小:1到10,手機端一般是4 $QR_name = './Public/Qrcode/ping.png'; \QRcode::png ( $value, $QR_name, $errorCorrectionLevel, $matrixPointSize, 1 ); //以上是不帶Logo二維碼的檔名,下面是為生成的二維碼新增logo $logo = './Public/Logo/ping.png';//需要顯示在二維碼中的Logo影象 if ($logo !== FALSE) { // 從字串中的影象流新建一影象 $QR = imagecreatefromstring(file_get_contents($QR_name)); $logo = imagecreatefromstring(file_get_contents($logo)); // 獲取影象的寬度和高度 $QR_width = imagesx($QR); $QR_height = imagesy($QR); $logo_width = imagesx($logo); $logo_height = imagesy($logo); $logo_qr_width = $QR_width / 5; // 輸出合適寬高的圖片 $scale = $logo_width / $logo_qr_width; $logo_qr_height = $logo_height / $scale; $from_width = ($QR_width - $logo_qr_width) / 2; imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height); } imagepng ( $QR, $QR_name );//帶Logo二維碼的檔名 }
這就更簡單了,直接一個函式就行了
下面是個例子
function createcode(){ Vendor('phpqrcode.phpqrcode'); $text = 'http://blog.csdn.net/fei003';// 可以是文字,可以是連結 // 1.第一個引數$text,就是上面程式碼裡的URL網址引數, // 2.第二個引數$outfile預設為否,不生成檔案,只將二維碼圖片返回,否則需要給出存放生成二維碼圖片的路徑 // 3.第三個引數$level預設為L,這個引數可傳遞的值分別是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)。這個引數控制二維碼容錯率,不同的引數表示二維碼可被覆蓋的區域百分比。利用二維維碼的容錯率,我們可以將頭像放置在生成的二維碼圖片任何區域。 // 4.第四個引數$size,控制生成圖片的大小,預設為4 // 5.第五個引數$margin,控制生成二維碼的空白區域大小 // 6.第六個引數$saveandprint,儲存二維碼圖片並顯示出來,$outfile必須傳遞圖片路徑。 \QRcode::png($text,false,'M',5,1,false); }
在html頁面中這樣使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>二維碼生成頁面</title>
</head>
<body>
<h1>二維碼生成頁面,下面是生成的二維碼</h1>
<img src="{:U('User/Index/createcode')}" />
</body>
</html>
效果圖如下