thinkphp整合系列之phpqrcode生成二维码

php生成二维码其实挺简单的;当然指的是使用qrcode类库;

因此关于是否要写这篇博客;我是犹豫了再三的;

不过最后还是决定写下吧;如果有童鞋急着用;就可以直接引了;

再个也可以作为即将写的文章微信支付生成的二维码做个铺垫;

老规矩;以bjyadmin项目示例:https://github.com/baijunyao/thinkphp-bjyadmin

1:首先将/ThinkPHP/Library/Vendor/下的Phpqrcode文件夹拷贝到自己的项目中;

2:/Application/Common/Common/function.php增加如下函数

/**
 * 生成二维码
 * @param  string  $url  url连接
 * @param  integer $size 尺寸 纯数字
 */
function qrcode($url,$size=4){
    Vendor('Phpqrcode.phpqrcode');
    // 如果没有http 则添加
    if (strpos($url, 'http')===false) {
        $url='http://'.$url;
    }
    QRcode::png($url,false,QR_ECLEVEL_L,$size,2,false,0xFFFFFF,0x000000);
}

然后直接调用qrcode($url,$size)函数;第一个参数传链接;第二个参数传大小即可;

3:到这里已经可以生成二维码了;如果想对二维码更加个性化定制的话;

那么下面就来讲解下这堆参数的作用;

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

第一个参数$text;就是上面代码里的URL网址参数;

第二个参数$outfile默认为否;不生成文件;只将二维码图片返回;否则需要给出存放生成二维码图片的路径;

第三个参数$level默认为L;这个参数可传递的值分别是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%);这个参数控制二维码容错率;不同的参数表示二维码可被覆盖的区域百分比。利用二维维码的容错率;我们可以将头像放置在生成的二维码图片任何区域;

第四个参数$size;控制生成图片的大小;默认为4;

第五个参数$margin;控制生成二维码的空白区域大小;

第六个参数$saveandprint;保存二维码图片并显示出来;$outfile必须传递图片路径;

第七个参数$back_color;背景颜色;

第八个参数$fore_color;绘制二维码的颜色;

note:第七、第八个参数需要传16进制是色值;并且要把“#”替换为“0x”
举个栗子:
白色:#FFFFFF  =>  0xFFFFFF  
黑色:#000000  =>  0x000000  

更多用法;可以直接参考源代码了;http://phpqrcode.sourceforge.net/

白俊遥博客

白俊遥博客
请先登陆后发表评论
  • 最新评论
  • 总共8条评论
白俊遥博客

GG:tp5 输出一直是乱码content-type=html/txt  一直都改不过来,,不知道是什么原因。

2016-11-28 10:14:08 回复

白俊遥博客

没听清:博主, 要怎么把二维码中间放置一个logo呢- - 

2016-11-17 14:57:30 回复

白俊遥博客
  • 没听清 回复 没听清:已经解决了~ 
  • 2016-11-17 17:05:15 回复
白俊遥博客

:很有用,但是这里只有两种颜色设定,我百度了很久,php真的不能像java那样设置圆点,液体,渐变,混合色的么?

2016-11-10 11:18:43 回复

白俊遥博客
  • 云淡风晴 回复 :是想要这样的么?http://phpqrcode.sourceforge.net/examples/index.php?example=712
  • 2016-11-10 22:57:51 回复
白俊遥博客

Tom白俊遥博客非常好方便,请问ThinkPHP 5中的路径要怎么存放和调用QRcode呢?指导一下好吗

2016-10-04 22:10:41 回复

白俊遥博客
  • 云淡风晴 回复 Tom:不好意思;暂时没有整合入thinkphp5;容我有空了写一份thinkphp5的整合系列;
  • 2016-10-09 07:24:25 回复
白俊遥博客

∮獨行工匠$:怎么返回图片路径

2016-09-04 14:21:51 回复

白俊遥博客
  • 云淡风晴 回复 ∮獨行工匠$:直接访问控制器方法即可;这个是生成的图片;没有保存成文件;
  • 2016-09-05 22:17:14 回复
白俊遥博客
  • 况宇-锋蕴科技 回复 云淡风晴:请教一下 这种生成的二维码 怎么放到页面上去呢?
  • 2016-09-22 14:04:22 回复
白俊遥博客
  • 1 回复 况宇-锋蕴科技:帮博主回下你:把生成二维码的方法URL放到HTML页面的 img 标签的 src 属性里就行了,和验证码图片一样的。
  • 2016-10-17 15:33:02 回复
白俊遥博客

:受教了 ,谢谢。移植到我自己的联系项目里试试

2016-08-09 14:11:33 回复

白俊遥博客

4暮:QRcode' not found

2016-08-04 16:44:25 回复

白俊遥博客
  • 云淡风晴 回复 4暮:1:首先将/ThinkPHP/Library/Vendor/下的Phpqrcode文件夹拷贝到自己的项目中;
  • 2016-08-04 16:50:27 回复
白俊遥博客
  • 4暮 回复 云淡风晴:拷贝了。
  • 2016-08-04 16:54:45 回复
白俊遥博客
  • 云淡风晴 回复 4暮:你下载bjyadmin; http://git.oschina.net/shuaibai123/thinkphp-bjyadmin 看能首页中的那个生成二维码可以不?对照着bjyadmin来改;
  • 2016-08-04 16:57:36 回复
白俊遥博客

爱喝白开水:感謝.另外有barcode 生成的  thinkphp 的應用嗎 ?

2016-06-17 08:15:24 回复

白俊遥博客
  • 云淡风晴 回复 爱喝白开水:是想用thinkphp生成條碼嗎?
  • 2016-06-17 10:30:03 回复
白俊遥博客
  • 阿小 回复 云淡风晴:你好,生成code128条码以pdf输出怎么弄,求大神帮忙
  • 2016-09-22 17:53:42 回复