thinkphp3.2集成QRcode生成二维码

一、下载QRcode源代码

https://sourceforge.net/projects/PHPqrcode/files/releases/

使用PHPqrcode必须开启GD2扩展,PHPqrcode提供了一个png()方法,通过该方法,我们可以生成自已需要的二维码。该函数定义如下:

public static function png(
	$text,$outfile = false,$level = QR_ECLEVEL_L,$size = 3,$margin = 4,$saveandprint = false
) {
	$enc = QRencode::factory($level,$size,$margin);
	return $enc->encodePNG($text,$outfile,$saveandprint=false);
}

总共六个参数:
参数一:表示你要保存的文本数据。
参数二:输出二维码图片文件
参数三:容错率(分别是L、M、Q、H)
参数四:生成图片大小(1-10)
参数五:二维码周围边框空白区域间距值
参数六:是否保存二维码显示

 

二、把下载好的压缩包解压,并名为QRcode,并拷贝到ThinkPHP/Library/Vendor下。然后我们在应用程序目录的Common模块下Common/function.PHP创建一个公共方法,用于生成二维码

/**
 * 生成二维码
 * @param type $data 信息数据
 * @param type $size 二维码图大小,1-10可选,数字越大图片尺寸越大
 * @param type $path 图片保存根路径
 * @param type $level 纠错比例,分为L,M,Q,H四个等级,H代表最高纠错能力
 */
function createQR($data = '',$size = 8,$path = './Qr',$level = 'L') {
    if (empty($data) || empty($size) || empty($path) || empty($level)) {
        return false;
    }
    vendor('QRcode.PHPqrcode');
    $size = min(max((int) $size,1),10);
    $filePath = $path . '/' . date('Ym');
    if (!file_exists($filePath)) {
        @mkdir($filePath,0766,true);
    }
    if (!in_array($level,array('L','M','Q','H'))) {
        $level = 'L';
    }
    $fileName = date('YmdHis') . '_' . uniqid() . '.png';
    $file = $filePath . '/' . $fileName;

    QRcode::png($data,$file,$level,2);

    if (file_exists($file)) {
        return $file;
    } else {
        return false;
    }
}

 




 

相关文章

public function getapiSignature(){$access_token=S('access_token');//先查询缓存中...
前述两篇文章“使用BootStrap制作用户登录UI”和“使用BootStrapValidator来完成前端输入验证 ”已经将...
前两天自己写的一篇文章“针对BootStrap中tabs控件的美化和完善”被别的网站给转载了,这也许是值得高兴...
由于用惯了ThinkPHP之前的版本,一想到要用Session就直接用$_SESSION来存取,今天看了ThinkPHP5的手册,...
今天访问自己的网站的时候(by thinkphp),突然发现身份验证失效了,Session无法跨页,而且登陆的时候...
使用thinkphp做一个后台系统,把session中的id传给header模板 切换多个子账户的时候,发现模板传递的参...