当前位置:首页 > CMS教程 > Thinkphp > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-19 09:27:42 浏览: 评论:0 

这篇文章主要介绍了thinkphp3.2框架集成QRcode生成二维码的方法,结合实例形式分析了QRcode的下载、扩展以及thinkphp3.2使用QRcode生成二维码的相关操作技巧,需要的朋友可以参考下。

本文实例讲述了thinkphp3.2框架集成QRcode生成二维码的方法。分享给大家供大家参考,具体如下:

一、下载QRcode源代码

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

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

  1. public static function png( 
  2.   $text
  3.   $outfile = false, 
  4.   $level = QR_ECLEVEL_L, 
  5.   $size = 3, 
  6.   $margin = 4, 
  7.   $saveandprint = false 
  8. ) { 
  9.   $enc = QRencode::factory($level$size$margin); 
  10.   return $enc->encodePNG($text$outfile$saveandprint=false); 

总共六个参数:

参数一:表示你要保存的文本数据。

参数二:输出的二维码图片文件。

参数三:容错率(分别是L、M、Q、H)

参数四:生成图片大小(1-10)

参数五:二维码周围边框空白区域间距值

参数六:是否保存二维码并显示

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

  1. /** 
  2.  * 生成二维码 
  3.  * @param type $data 信息数据 
  4.  * @param type $size 二维码图大小,1-10可选,数字越大图片尺寸越大 
  5.  * @param type $path 图片保存根路径 
  6.  * @param type $level 纠错比例,分为L,M,Q,H四个等级,H代表最高纠错能力 
  7.  */ 
  8. function createQR($data = ''$size = 8, $path = './Qr'$level = 'L') { 
  9.   if (emptyempty($data) || emptyempty($size) || emptyempty($path) || emptyempty($level)) { 
  10.     return false; 
  11.   } 
  12.   vendor('QRcode.phpqrcode'); 
  13.   $size = min(max((int) $size, 1), 10); 
  14.   $filePath = $path . '/' . date('Ym'); 
  15.   if (!file_exists($filePath)) { 
  16.     @mkdir($filePath, 0766, true); 
  17.   } 
  18.   if (!in_array($levelarray('L''M''Q''H'))) { 
  19.     $level = 'L'
  20.   } 
  21.   $fileName = date('YmdHis') . '_' . uniqid() . '.png'
  22.   $file = $filePath . '/' . $fileName
  23.    
  24.   QRcode::png($data$file$level$size, 2); 
  25.    
  26.   if (file_exists($file)) { 
  27.     return $file
  28.   } else { 
  29.     return false; 
  30.   } 
  31. }

Tags: thinkphp3.2生成二维码 QRcode

分享到: