Tp框架如何生成二维码

发布时间 - 2020-08-18 00:00:00    点击率:

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

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

(一) 安装qr-code扩展

composer require endroid/qr-code

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


     * @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 
     * @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;
        }
    }

}

                           


# 是否存在  # 给大家  # 不存在  # toolbar  # php  # composer  # false  # require  # brush  # link 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何获取PHP WAP自助建站系统源码?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  北京企业网站设计制作公司,北京铁路集团官方网站?  JS经典正则表达式笔试题汇总  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  零基础网站服务器架设实战:轻量应用与域名解析配置指南  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  佛山网站制作系统,佛山企业变更地址网上办理步骤?  详解Android中Activity的四大启动模式实验简述  如何在万网利用已有域名快速建站?  智能起名网站制作软件有哪些,制作logo的软件?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Mybatis 中的insertOrUpdate操作  装修招标网站设计制作流程,装修招标流程?  php json中文编码为null的解决办法  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel API资源类怎么用_Laravel API Resource数据转换  深圳网站制作培训,深圳哪些招聘网站比较好?  Python高阶函数应用_函数作为参数说明【指导】  jQuery 常见小例汇总  常州企业网站制作公司,全国继续教育网怎么登录?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  EditPlus中的正则表达式 实战(4)  如何快速生成ASP一键建站模板并优化安全性?  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  JS实现鼠标移上去显示图片或微信二维码  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  如何在万网自助建站中设置域名及备案?  在线制作视频网站免费,都有哪些好的动漫网站?  JS中对数组元素进行增删改移的方法总结  零服务器AI建站解决方案:快速部署与云端平台低成本实践  详解Oracle修改字段类型方法总结  如何在橙子建站中快速调整背景颜色?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  如何利用DOS批处理实现定时关机操作详解  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  JS弹性运动实现方法分析