top
元旦节到了,元旦节快乐...

固定当前背景  反馈、咨询、建议、留言等,请点这里[Alt+G]

本栏相关
其他文章
PHPHypertext Preprocessor当前位置:首页 >>开发技巧>>PHP
ThinkPHP利用phpqrcode生成二维码(带logo)
编辑yang 发布时间2014-10-14 浏览量46294 来源本站编辑 特大
摘要:之前一直用的谷歌二维码API接口,但最近发现访问不了其服务器,所以换另外一种方式解决:使用phpqrcode类来实现。

       之前一直用的谷歌二维码API接口,但最近发现访问不了其服务器,所以换另外一种方式解决:使用phpqrcode类来实现。

       首先需要引入phpqrcode文件。文件下载:phpqrcode.rar

不想开发,直接调用 或者访问http://www.xcsoft.cn/article/358.html

<img alt="二维码" src="http://www.xcsoft.cn/public/qrcode?text=填写需要生成的数据&size=4&level=L&padding=2&logo=">
<!---
调用说明
text:填写您想到生成的数据,如:http://www.xcsoft.cn
size:填写生成图片大小,1为25*25 2为50*50 以此类推 最大是10:250*250
level:填写纠错大小 一般为L即可,可选:L、M、Q、H
padding:图片填充白色区域的大小 默认为2
logo:如果您希望生成的二维码中间带logo,请填写您的logo完整地址 大小建议在30*30左右,可根据您设定的size来调节合适大小,没有则不填
--->

官方默认程序:

<?php
    //引入phpqrcode文件
    include "phpqrcode/phpqrcode.php";
    //要生成二维码的数据
    $text="http://www.xcsoft.cn";
    //纠错级别, 纠错级别越高,生成图片会越大
    //L水平    7%的字码可被修正
    //M水平    15%的字码可被修正
    //Q水平    25%的字码可被修正
    //H水平    30%的字码可被修正
    $level = "L";
    //图片每个黑点的像素。
    $size = "4";
    //生成图片 第二个参数:是否保存成文件 如需要保存文件,第二个参数改为文件名即可,如:'qrcode.png'
    QRcode::png($text, false, $level, $size);
?>

       需要兼容到ThinkPHP里,则需要把下载到的文件复制到Vendor夹里。

ThinkPHP代码如下:

//引用地址http://www.xcsoft.cn/public/qrcode
//text:需要生成二维码的数据,默认:http://www.xcsoft.cn
//size:图片每个黑点的像素,默认4
//level:纠错等级,默认L
//padding:图片外围空白大小,默认2
//logo:全地址,默认为空
//完整引用地址:http://www.xcsoft.cn/public/qrcode?text=http://www.xcsoft.cn&size=4&level=L&padding=2&logo=http://www.xcsoft.cn/Public//images/success.png
public function qrcode($text='http://www.xcsoft.cn',$size='4',$level='L',$padding=2,$logo=true){
    $text=$this->_get('text')?$this->_get('text'):$text;
    $size=$this->_get('size')?$this->_get('size'):$size;
    $level=$this->_get('level')?$this->_get('level'):$level;
    $logo=$this->_get('logo')?$this->_get('logo'):$logo;
    $padding=$this->_get('padding')?$this->_get('padding'):$padding;
    $path='./Uploads/qrcode/';
    $QR=$path.'qrcode.png';
    vendor("phpqrcode.phpqrcode");
        QRcode::png($text,$QR, $level, $size,$padding);
    if($logo !== false){
        $QR = imagecreatefromstring(file_get_contents($QR));
        $logo = imagecreatefromstring(file_get_contents($logo));
        $QR_width = imagesx($QR);
        $QR_height = imagesy($QR);
        $logo_width = imagesx($logo);
        $logo_height = imagesy($logo);
        $logo_qr_width = $QR_width / 5;
        $scale = $logo_width / $logo_qr_width;
        $logo_qr_height = $logo_height / $scale;
        $from_width = ($QR_width - $logo_qr_width) / 2;
        imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
    }
    header("Content-Type:image/jpg");
    imagepng($QR);
}

       写好后,图片地址直接引用即可,引用详参见下方(本站已实现)。

引用说明

       引用地址:http://www.xcsoft.cn/public/qrcode

       text:需要生成二维码的数据,默认:http:www.xcsoft.cn

       size:图片每个黑点的像素,默认4

       level:纠错等级,默认L

       padding:默认2 图片外围空白大小

       logo:完整地址,默认为空

标签  技巧网站开发

按键盘左右方向键可快速浏览上一篇(←)、下一篇(→)


反馈/咨询/建议/留言(GuestBook)
您好,怎么称呼您!
您的姓名:
上一步:鼠标向上滚动/左方向键(←)
下一步或完成:鼠标向下滚动/Tab键/右方向键(→)
如果您有空的话,可以填一下您的相关信息!
您的电话:
您的邮箱:
现在,请填写您想要了解的信息!
信息内容:
验证码: 看不清?点图片刷新