前言

因为团队性能须要,咱们须要用php做一个能依据咱们的给出的URL生成二维码的action,过程波折,做进去之后在这里总结一下。

开始动手

开始的时候,走了谬误的方向,过后的想法:既然要生成二维码,那就要晓得二维码的生成机制,于是我在网上搜二维码,失去了如下后果:

我粗略读了一遍之后顿悟:显然,这不是我想要的(如果钻研这货色,预计将来几周不必干别的了)

步入正轨

我尽管走错了方向,然而也简略的理解了二维码这个货色,那么咱们须要的性能该如何实现呢?这次我决定简略粗犷一点

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

整体思路

  • 咱们须要的性能在网上曾经有人用php写好了,就像咱们援用think外面的库一样,咱们只有把网上能生成二维码的库下载下来,而后援用它,就能快捷便当的生成二维码了。思路确定了,开始干活。

笔者发现了两种方法,最初应用了第二种

办法一:Composer与endroid/QrCode

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

  • 目前笔者用的是windows环境,依照官网文档当中的链接下载好,开始高兴的一路next,而后问题就来了

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

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

  • XAMPP

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

找到文件,装置实现,在咱们的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

下载结束后

留神:肯定要是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...

版权申明

本文保留所有权力,版权归河北工业大学梦云智软件开发团队所有。未经团队及作者当时书面批准,您不得以任何形式将本文内容进行商业性应用或通过信息网络流传本文内容。本文作者:温宇航