溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在thinkphp3.2中利用QRcode生成一個(gè)二維碼

發(fā)布時(shí)間:2021-04-13 15:50:15 來(lái)源:億速云 閱讀:358 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了怎么在thinkphp3.2中利用QRcode生成一個(gè)二維碼,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

一、下載QRcode源代碼

使用phpqrcode必須開啟GD2擴(kuò)展,phpqrcode提供了一個(gè)png()方法,通過(guò)該方法,我們可以生成自已需要的二維碼。該函數(shù)定義如下:

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);
}

總共六個(gè)參數(shù):

參數(shù)一:表示你要保存的文本數(shù)據(jù)。
參數(shù)二:輸出的二維碼圖片文件。
參數(shù)三:容錯(cuò)率(分別是L、M、Q、H)
參數(shù)四:生成圖片大小(1-10)
參數(shù)五:二維碼周圍邊框空白區(qū)域間距值
參數(shù)六:是否保存二維碼并顯示

二、把下載好的壓縮包解壓,并名為QRcode,并拷貝到ThinkPHP/Library/Vendor下。然后我們?cè)趹?yīng)用程序目錄的Common模塊下Common/function.php創(chuàng)建一個(gè)公共方法,用于生成二維碼。

/**
 * 生成二維碼
 * @param type $data 信息數(shù)據(jù)
 * @param type $size 二維碼圖大小,1-10可選,數(shù)字越大圖片尺寸越大
 * @param type $path 圖片保存根路徑
 * @param type $level 糾錯(cuò)比例,分為L(zhǎng),M,Q,H四個(gè)等級(jí),H代表最高糾錯(cuò)能力
 */
function createQR($data = '', $size = 8, $path = './Qr', $level = 'L') {
  if (empty($data) || empty($size) || empty($path) || empty($level)) {
    return false;
  }
  vendor('QRcode.phpqrcode');
  $size = min(max((int) $size, 1), 10);
  $filePath = $path . '/' . date('Ym');
  if (!file_exists($filePath)) {
    @mkdir($filePath, 0766, true);
  }
  if (!in_array($level, array('L', 'M', 'Q', 'H'))) {
    $level = 'L';
  }
  $fileName = date('YmdHis') . '_' . uniqid() . '.png';
  $file = $filePath . '/' . $fileName;
 
  QRcode::png($data, $file, $level, $size, 2);
 
  if (file_exists($file)) {
    return $file;
  } else {
    return false;
  }
}

上述內(nèi)容就是怎么在thinkphp3.2中利用QRcode生成一個(gè)二維碼,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI