• 技术文章 >php框架 >ThinkPHP

    关于xampp环境下thinkphp5二维码的生成方法

    藏色散人藏色散人2021-02-15 10:13:05转载1195

    xampp环境下thinkphp5二维码的生成

    前言

    由于团队功能需要,我们需要用php做一个能根据我们的给出的URL生成二维码的action,过程曲折,做出来之后在这里总结一下。

    开始入手

    开始的时候,走了错误的方向,当时的想法:既然要生成二维码,那就要知道二维码的生成机制,于是我在网上搜二维码,得到了如下结果:
    1568a5905fc47d66304ef9ceb28cf15.png

    我粗略读了一遍之后顿悟:
    显然,这不是我想要的(如果研究这东西,估计未来几周不用干别的了)

    步入正轨

    我虽然走错了方向,但是也简单的了解了二维码这个东西,那么我们需要的功能该如何实现呢?这次我决定简单粗暴一点

    ae2e9c4aa41223b037b043d4908de5d.png

    谷歌诚不欺我,在我之前已经有人写好了这些个功能,于是我开始步入正轨。

    整体思路

    • 我们需要的功能在网上已经有人用php写好了,就像我们引用think里面的库一样,我们只要把网上能生成二维码的库下载下来,然后引用它,就能快捷便利的生成二维码了。思路确定了,开始干活。

    笔者发现了两种办法,最后使用了第二种

    方法一:Composer与endroid/QrCode

    • 提到php下载第三方库,就必须提到composer了,这是php的一个贼厉害的库管理工具,可以帮助我们下载网上的其他类库,关于这个神奇的东西,官方文档当中也有介绍(如下图)

    e50859f038683689ea6e1d7179d5bd8.png

    • 目前笔者用的是windows环境,按照官方文档当中的链接下载好,开始快乐的一路next,然后问题就来了

    2b688cf3cecb6a8f818b2c96bda6a06.png

    这是我在网上找到的照片(源自菜鸟教程:composer安装),我安装的时候,并没有地址出现,于是我就懵了,这是什么意思?

    思考了一下,我们安装的这个管理工具是和php联系的,并且需要找到菜鸟教程图片当中的php.exe文件,于是引出了下面的问题:php在哪里?

    • XAMPP

      百度百科:XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。由此可知,我们使用的xampp里面集成了php,下一步,开始找文件
      391a1b554d554d9729bd71a81bbf2fc.png

    找到文件,安装完成,在我们的thinphp5文件夹下,输入指令来安装好第三方库
    
        $ composer require endroid/qr-code

    这样,我们的库文件就加载完毕,进行代码开发的话,大家可以参考这篇博客

    http://www.cnbreak.org/biancheng/thinkphp5/wechatwebpage/760.html

    方法二:利用phpqrcode

    笔者用的是这个方法,用起来也相对简单(不过在thinkphp6貌似没办法使用了),我们在网上直接下载第三方库

    下载链接https://sourceforge.net/projects/phpqrcode/files/releases
    官方说明文档 http://phpqrcode.sourceforge.net/docs/html/annotated.html

    下载完毕后
    3a4dab766551a9e655ebaed5b376339.png

    注意:一定要是extends目录
    我们用composer下载好的库在vender里面,而外面下载的第三方库只有放在extends里面才会起作用。
    如下是第二种方法的代码

    function qrcode($level = 'L', $size = 4){
        // 导入Phpqrcode插件文件require_once EXTEND_PATH.'phpqrcode/phpqrcode.php';
        
        //设置url
        $url1 = 'https://www.baidu.com/s?wd=666&rsv_spt=1&rsv_iqid=0xfea0cab90000241d&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_sug3=4&rsv_sug1=3&rsv_sug7=100&rsv_sug2=0&rsv_btype=i&inputT=528&rsv_sug4=1203';
    
        // 容错级别
        $errorCorrectionLevel = $level;
        // 生成图片大小
        $matrixPointSize = intval($size);
        // 生成二维码图片
        $object = new QRcode();
        // 这个一定要加上,清除缓冲区
        ob_end_clean();
        // 第二个参数false的意思是不生成图片文件,如果你写上‘picture.png’则会在根目录下生成一个png格式的图片文件
        $object->png($url1, false, $errorCorrectionLevel, $matrixPointSize, 2);
    }

    相关参数的意思:

    c7d4f4af6d8aa3bf2ff125d200bbe42.png

    • $text 就是url参数
    • $outfile 默认否,不生成文件,只返回二维码图片,否则需要给出保存路径
    • $level 二维码容错率,默认L(7%)、M(15%)、Q(25%)、H(30%)
    • $size 二维码图片大小,默认4
    • $margin 二维码空白区域大小
    • $saveabdprint 二维码保存并显示,$outfile必须传路径
    • $back_color 背景颜色
    • $fore_color 绘制二维码的颜色
    • tip:颜色必须传16进制的色值,并把“#”替换为“0x”; 如 #FFFFFF => 0xFFFFFF

    总结

    我们想要实现一个功能的时候,一般来说在我们之前都会有人已经写出这个东西来了,首先自己去研究这个功能的实现思路,然后去想办法,找到相关的文档方法,就可以实现功能了。

    以上就是关于xampp环境下thinkphp5二维码的生成方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:php
    上一篇:thinkphp模块怎么改名 下一篇:解析thinkphp withCredentials跨域问题解决思路
    大前端线上培训班

    相关文章推荐

    • thinkphp5.1和php、vue.js实现前后端分离和交互• 详解ThinkPHP5下has_one和belongs_to的区别• Thinkphp5如何使用validate实现验证功能• 详解thinkphp5.1的URL重写,伪静态设置• 解析ThinkPHP5.1自定义标签的使用

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网