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

 更新时间:2020年03月11日 10:47:56   作者:怀素真  
这篇文章主要介绍了thinkphp3.2框架集成QRcode生成二维码的方法,结合实例形式分析了QRcode的下载、扩展以及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程序设计有所帮助。

相关文章

  • Zend Framework教程之Resource Autoloading用法实例

    Zend Framework教程之Resource Autoloading用法实例

    这篇文章主要介绍了Zend Framework教程之Resource Autoloading用法,结合实例形式分析了Resource Autoloading实现自动加载的原理及具体使用方法,需要的朋友可以参考下
    2016-03-03
  • 使用phpunit进行接口自动化测试

    使用phpunit进行接口自动化测试

    下面小编就为大家分享一篇使用phpunit进行接口自动化测试,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 基于linnux+phantomjs实现生成图片格式的网页快照

    基于linnux+phantomjs实现生成图片格式的网页快照

    在代码区看到一个生成站点快照的代码,看了半天才发现,作者仅仅贴出来业务代码,最核心的生成快照图片的代码反而没有给出来。 以前记得google搜索提供站点缩略图,那时候觉得好神奇,但是没有花时间去做深入的调研。昨天又遇到了,那就顺便调研下吧。
    2015-04-04
  • PHP实现用户认证及管理完全源码

    PHP实现用户认证及管理完全源码

    PHP实现用户认证及管理完全源码...
    2007-03-03
  • php使用百度ping服务代码实例

    php使用百度ping服务代码实例

    这篇文章主要介绍了php使用百度ping服务代码实例,百度ping服务可以加速对自己网站的收录,一般在文章发表时调用,需要的朋友可以参考下
    2014-06-06
  • 详解PHP中websocket的使用方法

    详解PHP中websocket的使用方法

    这篇文章主要为大家详细介绍了PHP中websocket的使用方法,为大家进行了详细注解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • PHP+AJAX 投票器功能

    PHP+AJAX 投票器功能

    这篇文章主要介绍了PHP+AJAX 投票器功能,本文通过一个实例代码给大家介绍的非常详细,需要的朋友参考下
    2017-11-11
  • CodeIgniter控制器之业务逻辑实例分析

    CodeIgniter控制器之业务逻辑实例分析

    这篇文章主要介绍了CodeIgniter控制器之业务逻辑使用方法,结合实例形式分析了业务逻辑所涉及的相关概念与具体使用方法,需要的朋友可以参考下
    2016-01-01
  • PHP SplObjectStorage使用实例

    PHP SplObjectStorage使用实例

    这篇文章主要介绍了PHP SplObjectStorage使用实例,SplObjectStorage是SPL标准库中的数据结构对象容器,用来存储一组对象,特别是当你需要唯一标识对象的时候,需要的朋友可以参考下
    2015-05-05
  • PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)

    PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)

    这篇文章主要介绍了PHP数组遍历知识汇总,本文包含3种遍历方法、7个数组指针操作函数、对3种数组遍历的速度测试等内容,需要的朋友可以参考下
    2014-07-07

最新评论