您的位置 首页 php

Tp框架如何生成二维码

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

  • 基础环境
    • 系统环境:Windows10 x64
    • PHP集成环境:phpstudy
    • PHP依赖管理工具:Composer

(一) 安装qr-code扩展

composer require endroid/qr-code

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

<?phpnamespace 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::alnum(15);        $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)            ->setPadding(15)            ->setErrorCorrection('high')            ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))            ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))            ->setImageType(QrCode::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::alnum(15);        $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)            ->setSize(300)            ->setLogo($logo)            ->setLogoSize(60)            ->setErrorCorrection('high')            ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))            ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))            ->setImageType(QrCode::IMAGE_TYPE_PNG);        $qrCode->save($pathname);        $str="/qrcode/".$n."/". $img_name . '.png';        if ($domain){            return request()->domain().$str;        }else{            return $str;        }    }}

文章来源:智云一二三科技

文章标题:Tp框架如何生成二维码

文章地址:https://www.zhihuclub.com/26765.shtml

关于作者: 智云科技

热门文章

网站地图