TP5在製作二維碼

MAC安裝composer

window安裝composer

1、使用composer下載對應類庫

composer require aferrandini/phpqrcode

2、在api中新建Orcode控制器,編寫如下方法

<?php
/**
 * 生成二維碼
 * Created by PhpStorm.
 * Date: 2019/5/30
 * Time: 11:59
 */

namespace app\api\controller;

use PHPQRCode\QRcode;
use think\Controller;

class Orcode extends Controller
{
    /**
     *
     * 功能:生成二維碼    
     * @param string $qrData 手機掃描後要跳轉的網址
     * @param string $qrLevel 默認糾錯比例 分爲L、M、Q、H四個等級,H代表最高糾錯能力
     * @param string $qrSize 二維碼圖大小,1-10可選,數字越大圖片尺寸越大
     * @param string $savePath 圖片存儲路徑
     * @param string $savePrefix 圖片名稱前綴
     */
    function createQRcode($savePath, $qrData = 'PHP QR Code :)', $qrLevel = 'L', $qrSize = 4, $savePrefix = 'qrcode')
    {
        if (!isset($savePath)) return '';
        //設置生成png圖片的路徑
        $PNG_TEMP_DIR = $savePath;

        //檢測並創建生成文件夾
        if (!file_exists($PNG_TEMP_DIR)) {
            mkdir($PNG_TEMP_DIR);
        }
        $filename = $PNG_TEMP_DIR . 'qrcode.png';
        $errorCorrectionLevel = 'L';
        if (isset($qrLevel) && in_array($qrLevel, ['L', 'M', 'Q', 'H'])) {
            $errorCorrectionLevel = $qrLevel;
        }
        $matrixPointSize = 4;
        if (isset($qrSize)) {
            $matrixPointSize = min(max((int)$qrSize, 1), 10);
        }
        if (isset($qrData)) {
            if (trim($qrData) == '') {
                die('data cannot be empty!');
            }
            //生成文件名 文件路徑+圖片名字前綴+md5(名稱)+.png
            $filename = $PNG_TEMP_DIR . $savePrefix . md5($qrData . '|' . $errorCorrectionLevel . '|' . $matrixPointSize) . '.png';
            //開始生成
            QRcode::png($qrData, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
        } else {
            //默認生成
            QRcode::png('PHP QR Code :)', $filename, $errorCorrectionLevel, $matrixPointSize, 2);
        }
        if (file_exists($PNG_TEMP_DIR . basename($filename)))
            return basename($filename);
        else
            return FALSE;
    }

}

3、在需要的地方調用這個方法

    /**
     * 生成二維碼圖片
     * @param $or_code
     * @return string
     */
    public function getOrCodeUrl($or_code)
    {
        $Orcode = new Orcode();
        $savePath =  ROOT_PATH . 'public' . DS .'qrcode/';
        $qrData = $or_code;
        $qrLevel = 'H';
        $qrSize = '8';
        $savePrefix = $or_code;
        $filename = $Orcode->createQRcode($savePath, $qrData, $qrLevel, $qrSize, $savePrefix);
        $initPath	= '/qrcode/' .$filename;

        return $initPath;
    }

4、完成

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章