下面由 thinkphp 框架教程栏目给大家介绍Tp框架生成二维码的方法,希望对需要的朋友有所帮助! 基础环境 系统环境:Windows10 x64 PHP集成环境:phpstudy PHP依赖管理工具:Composer (一) 安
下面由thinkphp框架教程栏目给大家介绍Tp框架生成二维码的方法,希望对需要的朋友有所帮助!

- 基础环境
- 系统环境:Windows10 x64
- PHP集成环境:phpstudy
- PHP依赖管理工具:Composer
(一) 安装qr-code扩展
composer require endroid/qr-code
(二)代码实现(代码亲测有效)
<?php
namespace app\common\service;
use Jrk\Random;
use Endroid\QrCode\QrCode;
use think\Exception;
class QrcodeSrvice
{
/**
* @param $text
* @param int $size
* @param bool $domain
* @return string
* @author: Hhy <jackhhy520@qq.com>
* @describe:生成普通二维码
*/
public static function make_qrcode($text,$size=105,$domain=false){
$img_name = Random::alnum(15);
$n = date("Ym");
$dir= app()->getRootPath()."public/qrcode/code/".$n;
//判断目录是否存在
if (!is_dir($dir)) {
mkdir($dir, 0777, true);
}
$pathname = $dir."/" . $img_name . '.png';
$qrCode = new QrCode();
$qrCode->setText($text)
->setSize($size)
->setPadding(15)
->setErrorCorrection('high')
->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
->setImageType(QrCode::IMAGE_TYPE_PNG);
try {
$qrCode->save($pathname);
$str="/qrcode/code/".$n."/". $img_name . '.png';
if ($domain){
return request()->domain().$str;
}else{
return $str;
}
} catch (\Endroid\QrCode\Exceptions\ImageTypeInvalidException $exception) {
return "";
}
}
/**
* @param $text
* @param $logo
* @return string
* @throws Exception
* @author: Hhy <jackhhy520@qq.com>
* @describe:生成带logo 的二维码
*/
public static function QrCodeWithLogo($text,$logo,$domain=false){
if (!file_exists($logo)){
exception("logo地址不存在");
}
$img_name = Random::alnum(15);
$n = date("Ym");
$dir= app()->getRootPath()."public/qrcode/".$n;
//判断目录是否存在
if (!is_dir($dir)) {
mkdir($dir, 0777, true);
}
$pathname = $dir."/" . $img_name . '.png';
$qrCode = new QrCode();
$qrCode->setText($text)
->setSize(300)
->setLogo($logo)
->setLogoSize(60)
->setErrorCorrection('high')
->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
->setImageType(QrCode::IMAGE_TYPE_PNG);
$qrCode->save($pathname);
$str="/qrcode/".$n."/". $img_name . '.png';
if ($domain){
return request()->domain().$str;
}else{
return $str;
}
}
}以上就是Tp框架如何生成二维码的详细内容,更多请关注自由互联其它相关文章!
