PHP基於phpqrcode類生成二維碼
阿新 • • 發佈:2018-12-15
步驟如下:
1.phpqrcode類檔案下載,下載地址:https://sourceforge.net/projects/phpqrcode/
2.PHP環境必須開啟支援GD2擴充套件庫支援(一般情況下都是開啟狀態)
3.只需要裡邊的phpqrcode.php檔案第2963行的png()方法
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個引數$text:二維碼包含的內容,可以是連結、文字、json字串等等;
第2個引數$outfile:預設為false,不生成檔案,只將二維碼圖片返回輸出;否則需要給出存放生成二維碼圖片的檔名及路徑;
第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必須傳遞圖片路徑;
4.demo
function scerweima($url=''){
require_once 'phpqrcode.php';
$value = $url; //二維碼內容
$errorCorrectionLevel = 'L'; //容錯級別
$matrixPointSize = 5; //生成圖片大小
//生成二維碼圖片
$filename = 'qrcode/'.microtime().'.png';
QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
$QR = $filename; //已經生成的原始二維碼圖片檔案
$QR = imagecreatefromstring(file_get_contents($QR));
//輸出圖片
imagepng($QR, 'qrcode.png');
imagedestroy($QR);
return '<img src="qrcode.png" alt="使用微信掃描支付">';
}