thinkphp3.2框架集成QRcode生成二维码的方法分析

本文实例讲述了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, $size, 2);

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

PS:这里再为大家推荐两款二维码相关在线工具供大家参考使用:

在线生成二维码工具(加强版)
http://tools.jb51.net/transcoding/jb51qrcode

在线二维码解码识别工具
http://tools.jb51.net/transcoding/trans_qrcode

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

(0)

相关推荐

  • Thinkphp3.2.3整合phpqrcode生成带logo的二维码

    Thinkphp中没有二维码相关的库,因此我们可以通过整合phpqrcode来完成生成二维码的功能. 下载phpqrcode 下载地址:http://phpqrcode.sourceforge.net/ 整合到Thinkphp框架 在"ThinkPHP\Library\Vendor\"下新建目录phpqrcode,将压缩包内容解压到该文件夹下. 调用phpqrcode生成二维码 在IndexController控制器下添加如下方法: public function qrcode($ur

  • PHP基于phpqrcode生成带LOGO图像的二维码实例

    本文实例讲述了PHP基于phpqrcode生成带LOGO图像的二维码.分享给大家供大家参考.具体如下: 这里PHP使用phpqrcode生成带LOGO图像的二维码,使用起来很方便,代码中含 生成不带Logo的标准二维码和生成带Logo的二维码,可根据注释修改使用. <?php include ('phpqrcode.php'); $value = 'http://www.codesc.net';//二维码数据 $errorCorrectionLevel = 'L';//纠错级别:L.M.Q.H

  • thinkphp3.2实现上传图片的控制器方法

    本文讲述了thinkphp3.2实现上传图片的控制器方法.分享给大家供大家参考,具体如下: public function file() { $baseUrl = str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME'])); import('ORG.Net.UploadFile'); import('ORG.Util.Services_JSON'); $upload = new UploadFile(); $upload->maxSize =

  • PHP基于phpqrcode类生成二维码的方法详解

    本文实例讲述了PHP基于phpqrcode类生成二维码的方法.分享给大家供大家参考,具体如下: 使用PHP语言生成二维码,还是挺有难度的,当然调用生成二维码图片的接口(比如:联图网http://www.liantu.com/的接口)除外,如果自己写代码生成,真的无从下手.然而,我们可以使用phpqrcode这个现成的类文件,PHP二维码生成类库,利用它可以轻松生成二维码. 前期准备: 1.phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/p

  • Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例

    本文实例讲述了Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能.分享给大家供大家参考,具体如下: /** * 利用phpqrcode来实现生成带有logo的二维码图片 */ public function getQrCode(Request $request){ $type = $request->input('type');//传递的类型 ios | android require_once(dirname(__FILE__) . '/phpqrcode/' . 'ph

  • PHP QRCODE生成彩色二维码的方法

    本文实例讲述了PHP QRCODE生成彩色二维码的方法.分享给大家供大家参考,具体如下: 这里重写了下PHPQRCODE,精简了部分代码,合并PNG GIF JPEG的输出. 参数说明: 调用方式: 复制代码 代码如下: QRcode::IMGout($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $col=array(array(255,255,255),array(0,0,0)),$margin =2, $saveandp

  • thinkphp3.2.3版本的数据库增删改查实现代码

    框架thinkphp 版本:3.2.3 内容:数据库操作 1. 多表查找一条数据 M('a表')->join("b表 on b表.id=a表.id")->where('条件')->find(); 2.查找一条数据 M('a表')->where('条件')->find(); 3.多表查询所有数据 M('a表')->join("b表 on b表.id=a表.id")->where('条件')->select(); 4.查询

  • thinkphp3.2实现跨控制器调用其他模块的方法

    本文实例讲述了thinkphp3.2实现跨控制器调用其他模块的方法.分享给大家供大家参考,具体如下: thinphp中前台后台都有互相调用方法,这样可以省去重复内容. $hello = new \Admin\Common\Fun\hello(); $hello->hehe(); 调用其他地方的方法同理. 如果是在同控制器里模块名可以省略. 如调用common里面的某个类的方法: $hello = new \Common\Fun\hello(); $hello->hehe(); 框架里面提供了跨

  • PHP下通过QRCode类库创建中间带网站LOGO的二维码

    我们要生成二维码都需要借助一些类库来实现了,下面我介绍利用PHP QR Code生成二维码吧,生成方法很简单,下面我来介绍一下. 利用php类库PHP QR Code来实现,不需要装额外的php扩展,首先下载类库包,有时候地址打不开,地址:http://phpqrcode.sourceforge.net/ 下载: 国内下载:http://www.jb51.net/codes/189897.html 国外下载:http://sourceforge.net/projects/phpqrcode/ 例

  • thinkphp3.2.2实现生成多张缩略图的方法

    本文实例讲述了thinkphp3.2.2实现生成多张缩略图的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: public function dz_upload() { //上传多张缩略图   上传2张缩略图     if (isset($_FILES['ori_img'])){     $upload = new \Think\UploadFile();// 实例化上传类     $upload->maxSize = 3000000 ;// 设置附件上传大小  C('UP

  • thinkphp3.2.2前后台公用类架构问题分析

    本文实例分析了thinkphp3.2.2前后台公用类架构问题.分享给大家供大家参考.具体分析如下: 3.13之前好多项目都使用前后台公用类,在lib/action下创建Baseaction做为公共继承类,发现3.2.2里面很多人都用A调用,这样每用一次要用A调用,好麻烦,小编特意偷懒.亲测使用以下方法解决.感兴趣的朋友可以对其进行加强改进! thinkphp3.2.2的这么创建Application/Common/Controller/BaseController.class.php 复制代码

随机推荐