Tp框架如何生成二维码

下面由thinkphp框架教程栏目给大家介绍Tp框架生成二维码的方法,希望对需要的朋友有所帮助!

基础环境系统环境:Windows10 x64PHP集成环境:phpstudyPHP依赖管理工具:Composer

(一) 安装qr-code扩展

composer require endroid/qr-code

(二)代码实现(代码亲测有效)

<?php
namespace app\\common\\service;

use Jrk\\Random;
use Endroid\\QrCode\\QrCode;
use think\\Exception;

class QrcodeSrvice
{

    /**
     * @param $text
     * @param int $size
     * @param bool $domain
     * @return string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:生成普通二维码
     */
    public static function make_qrcode$text,$size=105,$domain=false){
        $img_name = Random::alnum15);
        $n = date"Ym");
        $dir= app)->getRootPath)."public/qrcode/code/".$n;
        //判断目录是否存在
        if !is_dir$dir)) {
            mkdir$dir, 0777, true);
        }
        $pathname = $dir."/" . $img_name . '.png';
        $qrCode = new QrCode);
        $qrCode->setText$text)
            ->setSize$size)
            ->setPadding15)
            ->setErrorCorrection'high')
            ->setForegroundColorarray'r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
            ->setBackgroundColorarray'r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
            ->setImageTypeQrCode::IMAGE_TYPE_PNG);
        try {
            $qrCode->save$pathname);
            $str="/qrcode/code/".$n."/". $img_name . '.png';
            if $domain){
                return request)->domain).$str;
            }else{
                return $str;
            }
        } catch \\Endroid\\QrCode\\Exceptions\\ImageTypeInvalidException $exception) {
            return "";
        }
    }


    /**
     * @param $text
     * @param $logo
     * @return string
     * @throws Exception
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:生成带logo 的二维码
     */
    public static function QrCodeWithLogo$text,$logo,$domain=false){
        if !file_exists$logo)){
            exception"logo地址不存在");
        }
        $img_name = Random::alnum15);
        $n = date"Ym");
        $dir= app)->getRootPath)."public/qrcode/".$n;
        //判断目录是否存在
        if !is_dir$dir)) {
            mkdir$dir, 0777, true);
        }
        $pathname = $dir."/" . $img_name . '.png';
        $qrCode = new QrCode);
        $qrCode->setText$text)
            ->setSize300)
            ->setLogo$logo)
            ->setLogoSize60)
            ->setErrorCorrection'high')
            ->setForegroundColorarray'r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
            ->setBackgroundColorarray'r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
            ->setImageTypeQrCode::IMAGE_TYPE_PNG);
        $qrCode->save$pathname);
        $str="/qrcode/".$n."/". $img_name . '.png';
        if $domain){
            return request)->domain).$str;
        }else{
            return $str;
        }
    }

}

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注