ThinkPHP5.0生成二维码

ThinkPHP5.0集成QRCode生成二维码

在项目根目录 composer 安装 QRCode

composer require endroid/qrcode

注意类库要改一个地方
路径:你的项目路径/vendor/endroid/qrcode/src/QrCode.php

const LABEL_FONT_PATH_DEFAULT = __DIR__.'/../assets/noto_sans.otf';
改成
const LABEL_FONT_PATH_DEFAULT = '';

控制器代码

<?php
/**
 * Pasa吴
 */
namespace app\admin\controller;

use app\common\controller\AdminBase;
use Endroid\QrCode\QrCode;


class Feedback extends AdminBase
{
    /**
     * 生成指定网址的二维码
     * @param string $url 二维码中所代表的网址
     * @param string $label 标签参数
     */
    public function index($url='https://www.baidu.com',$label="标签")
    {
        $qrCode = new QrCode();
        $qrCode->setText($url)
            ->setSize(300)//大小
            ->setLabelFontPath(VENDOR_PATH.'endroid\qrcode\assets\noto_sans.otf')
            ->setErrorCorrectionLevel('high')
            ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
            ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
            ->setLabel($label)
            ->setLabelFontSize(16);
        header('Content-Type: '.$qrCode->getContentType());
        echo $qrCode->writeString();
        exit;
        //使用方法
        //在模板文件中使用<img src="{:url('index/qrcode/create_qrcode')}">
    }
}

使用方法1
你的域名/admin/feedback/index/url/www.baidu.com/label/标签
使用方法2
在模板里面

                            <a target="_blank" href="{:url('admin/feedback/index',['url'=>'www.baidu.com','label'=>'标签'])}">
                                <img src="{:url('admin/feedback/index',['url'=>'www.baidu.com','label'=>'标签'])}">
                            </a>

Pasa吴技术博客
请先登录后发表评论
  • latest comments
  • 总共0条评论