xampp环境下thinkphp5二维码的生成

前言

因为团队功能须要,咱们须要用php作一个能根据咱们的给出的URL生成二维码的action,过程曲折,作出来以后在这里总结一下。php

开始入手

开始的时候,走了错误的方向,当时的想法:既然要生成二维码,那就要知道二维码的生成机制,因而我在网上搜二维码,获得了以下结果:
image.pnghtml

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

步入正轨

我虽然走错了方向,可是也简单的了解了二维码这个东西,那么咱们须要的功能该如何实现呢?此次我决定简单粗暴一点image.png
image.png
谷歌诚不欺我,在我以前已经有人写好了这些个功能,因而我开始步入正轨。git

总体思路

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

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

方法一:Composer与endroid/QrCode

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

image.png

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

image.png

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

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

  • XAMPP

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

找到文件,安装完成,在咱们的thinphp5文件夹下,输入指令来安装好第三方库

    $ composer require endroid/qr-code

这样,咱们的库文件就加载完毕,进行代码开发的话,你们能够参考这篇博客windows

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

方法二:利用phpqrcode

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

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

下载完毕后
image.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);
}

相关参数的意思:

png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 4, $margin = 4, $saveandprint=false, $back_color = 0xFFFFFF, $fore_color = 0x000000)

  • $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

总结

咱们想要实现一个功能的时候,通常来讲在咱们以前都会有人已经写出这个东西来了,首先本身去研究这个功能的实现思路,而后去想办法,找到相关的文档方法,就能够实现功能了。

参考博客:

http://www.517php.com/tp/46.html
http://www.cnbreak.org/bianch...

版权声明

本文保留全部权利,版权归河北工业大学梦云智软件开发团队全部。未经团队及做者事先书面赞成,您不得以任何方式将本文内容进行商业性使用或经过信息网络传播本文内容。本文做者:温宇航

相关文章
相关标签/搜索