如何将ThinkPHP3.2框架与QRcode生成二维码技术完美结合?
- 内容介绍
- 文章标签
- 相关推荐
本文共计763个文字,预计阅读时间需要4分钟。
本文实例讲述了如何将ThinkPHP3.2框架集成QRcode生成二维码的方法。以下为具体步骤:
一、下载QRcode源代码https://sourceforge.net/projects/phpqrcode/files/releases/
二、使用phpqrcode库
1.将下载的源代码解压到ThinkPHP3.2框架的根目录下。
2.在ThinkPHP3.2框架的配置文件中,开启QRcode库:
'extend'=> [ 'QRcode'=> 'path/to/QRcode', ], 其中,`path/to/QRcode`为解压后的QRcode库路径。三、生成二维码
1.在控制器中引入QRcode库:
php use Think\QRcode\QRcode;2.创建二维码:
php $data='http://www.example.com'; // 二维码内容 $size=4; // 二维码大小 $level='L'; // 二维码容错等级 $file='path/to/qr_code.png'; // 二维码保存路径及文件名QRcode::png($data, $file, $level, $size); 其中,`path/to/qr_code.png`为二维码保存的路径及文件名。
通过以上步骤,您可以在ThinkPHP3.2框架中集成QRcode生成二维码。希望对大家有所帮助。
本文实例讲述了thinkphp3.2框架集成QRcode生成二维码的方法。分享给大家供大家参考,具体如下:
一、下载QRcode源代码
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:这里再为大家推荐两款二维码相关在线工具供大家参考使用:
在线生成二维码工具(加强版)
tools.jb51.net/transcoding/jb51qrcode
在线二维码解码识别工具
tools.jb51.net/transcoding/trans_qrcode
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
本文共计763个文字,预计阅读时间需要4分钟。
本文实例讲述了如何将ThinkPHP3.2框架集成QRcode生成二维码的方法。以下为具体步骤:
一、下载QRcode源代码https://sourceforge.net/projects/phpqrcode/files/releases/
二、使用phpqrcode库
1.将下载的源代码解压到ThinkPHP3.2框架的根目录下。
2.在ThinkPHP3.2框架的配置文件中,开启QRcode库:
'extend'=> [ 'QRcode'=> 'path/to/QRcode', ], 其中,`path/to/QRcode`为解压后的QRcode库路径。三、生成二维码
1.在控制器中引入QRcode库:
php use Think\QRcode\QRcode;2.创建二维码:
php $data='http://www.example.com'; // 二维码内容 $size=4; // 二维码大小 $level='L'; // 二维码容错等级 $file='path/to/qr_code.png'; // 二维码保存路径及文件名QRcode::png($data, $file, $level, $size); 其中,`path/to/qr_code.png`为二维码保存的路径及文件名。
通过以上步骤,您可以在ThinkPHP3.2框架中集成QRcode生成二维码。希望对大家有所帮助。
本文实例讲述了thinkphp3.2框架集成QRcode生成二维码的方法。分享给大家供大家参考,具体如下:
一、下载QRcode源代码
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:这里再为大家推荐两款二维码相关在线工具供大家参考使用:
在线生成二维码工具(加强版)
tools.jb51.net/transcoding/jb51qrcode
在线二维码解码识别工具
tools.jb51.net/transcoding/trans_qrcode
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

