我们用的是phpqrcode
[请去我写的测试代码查看](https://www.thinkphp.cn/code/9153.html)
```
//
名片二维码
if($_POST["type"]=="qrlib"){
!empty($_POST['N'])? $N=$_POST['N']:$N="";
!empty($_POST['FN'])? $FN =$_POST['FN']:$FN ='';
!empty($_POST['NICKNAME'])?$NICKNAME =$_POST['NICKNAME'] :$NICKNAME ='';
!empty($_POST['PHOTO'])? $PHOTO=$_POST['PHOTO'] :$PHOTO ='';
!empty($_POST['BDAY'])? $BDAY=$_POST['BDAY'] :$BDAY ='';
!empty($_POST['TITLE'])?$TITLE=$_POST['TITLE'] :$TITLE ='';
!empty($_POST['ROLE'])? $ROLE=$_POST['ROLE'] :$ROLE ='';
!empty($_POST['ORG'])? $ORG=$_POST['ORG'] :$ORG ='';
!empty($_POST['WORKTEL'])? $WORKTEL =$_POST['WORKTEL'] :$WORKTEL ='';
!empty($_POST['HOMETEL'])? $HOMETEL=$_POST['HOMETEL'] :$HOMETEL ='';
!empty($_POST['cellTEL'])?$cellTEL =$_POST['cellTEL'] :$cellTEL ='';
!empty($_POST['HOMEADR'])? $HOMEADR=$_POST['HOMEADR'] :$HOMEADR ='';
!empty($_POST['EMAIL'])? $EMAIL=$_POST['EMAIL'] :$EMAIL ='';
!empty($_POST['URL'])?$URL=$_POST['URL'] :$URL ='';
$zz=qrlib($N,$FN,$URL,$EMAIL,$HOMEADR,$WORKTEL,$HOMETEL,$cellTEL,$NICKNAME,$PHOTO,$BDAY,$TITLE,$ROLE,$ORG) ;
}
普通二维码
if($_POST["type"]=="QRcodepng"){
//var_dump($_POST);die;
empty($_POST["url"])?$url=$_POST["url"]:$url="http://un.jipinlantu.com";
$zz=QRcodepng($url) ;
}
echo $zz;die;
function mk_dir($dir, $mode = 0755)
{
if(is_dir($dir)||@mkdir($dir,$mode)){
return true;
}
if(!mk_dir(dirname($dir),$mode)) {
return false;
}
return @mkdir($dir,$mode);
}
/*
第1个参数$text:二维码包含的内容,可以是链接、文字、json字符串等等;
第2个参数$outfile:默认为false,不生成文件,只将二维码图片返回输出;否则需要给出存放生成二维码图片的文件名及路径;
第3个参数$level:默认为L,这个参数可传递的值分别是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%),这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比,也就是被覆盖的区域还能识别;
第4个参数$size:控制生成图片的大小,默认为4;
第5个参数$margin:控制生成二维码的空白区域大小;
第6个参数$saveandprint:保存二维码图片并显示出来,$outfile必须传递图片路径;
*/
//生成二维码名片
//生成图片
/*($N="姓氏",
$FN="名字",
$URL="个人主页",
$EMAIL='邮箱',
$HOMEADR="住址",
$WORKTEL="工作电话",
$HOMETEL="家庭电话",
$cellTEL="移动电话",
$NICKNAME=“昵称”,
$PHOTO="头像",
$BDAY="表示出生日期",
$TITLE="工作位置,工作职能",
$ROLE="公司职业",
$ORG="组织名称"
)
*/
```
```
//生成名片二维码
function qrlib($N,$FN,$URL="",$EMAIL='',$HOMEADR="",$WORKTEL="",$HOMETEL="",$cellTEL="",$NICKNAME,$PHOTO="",$BDAY="",$TITLE="",$ROLE="",$ORG="")
{
include "phpqrcode/qrlib.php";
//拼接内容
$content = "BEGIN:VCARD" . "\n";//开始
$content .= "VERSION:2.1" . "\n";//版本
if(!empty($N)){
$content .= "N:".$N . "\n";//姓
}
if(!empty($FN)){
$content .= "FN:".$FN . "\n";//名
}
if(!empty($NICKNAME)){
$content .= "NICKNAME:".$NICKNAME . "\n";//别名
}
if(!empty($PHOTO)){
$content .= "PHOTO:".$PHOTO . "\n";//图像信息
}
/**/
if(!empty($BDAY)){
$content .= "BDAY: ".$BDAY . "\n";//表示出生日期
}
if(!empty($TITLE)){
$content .= "TITLE:".$TITLE . "\n";//工作位置,工作职能
}
if(!empty($ROLE)){
$content .= "ROLE:".$ROLE . "\n";//公司职业
}
if(!empty($ORG)){
$content .= "ORG:" .$ORG. "\n";//组织名称
}
if(!empty($WORKTEL)){
$content .= "TEL;WORK;VOICE:".$WORKTEL . "\n";//工作电话
}
if(!empty($HOMETEL)){
$content .= "TEL;HOME;VOICE:".$HOMETEL . "\n";//家庭电话
}
if(!empty($cellTEL)){
$content .= "TEL;TYPE=cell:".$cellTEL . "\n";//移动电话
}
if(!empty($HOMEADR)){
$content .= "ADR;HOME:;;".$HOMEADR . "\n";//家庭住址
}
if(!empty($EMAIL)){
$content .= "EMAIL:".$EMAIL . "\n";//邮箱
}
if(!empty($URL)){
$content .= "URL:".$URL . "\n"; //个人主页
}
$content .= "END:VCARD";//结束
//二维码图片保存地址
$save_path = "./qrcode/qrlib/".date("Ymd",time())."/";
mk_dir($save_path);
$filename=$N.$FN."qrcode.png" ;
//输出二维码
QRcode::png($content,$save_path.$filename, 'L', 4, 2);
return $save_path.$filename;
}
//生成普通二维码
function QRcodepng($url="",$save_path="./qrcode/url/")
{
//生成图片
//引入类库
include('./phpqrcode/phpqrcode.php');
//二维码里面的链接地址
//二维码图片保存地址
$zz=date("Ymd",time());
mk_dir($save_path.$zz."/");
$zz=$save_path.$zz."/".time().".png";
QRcode::png($url, $zz, 'L', 4, 2);
//后面两个参数控制二维码大小相关的,可自行调整
// 循环创建目录
return $zz;
die;
}
//生成logo二维码
function QRcodepnglogo($logo = './t.png',$url="http://un.jipinlantu.com",$save_path="./qrcode/urllogo/")
{
//引入类库
include('phpqrcode/phpqrcode.php');
//二维码里面的链接地址
//二维码图片保存地址
$zz=date("Ymd",time());
mk_dir($save_path.$zz."/");
$zz=$save_path.$zz."/".str_replace("/","_",str_replace("://","_",trim($url))).".png";
QRcode::png($url, $zz, 'L', 4, 2);
//后面两个参数控制二维码大小相关的,可自行调整
//logo图片
if($logo){
$QR = imagecreatefromstring(file_get_contents( $zz));
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);//二维码图片宽度
$QR_height = imagesy($QR);//二维码图片高度
$logo_width = imagesx($logo);//logo图片宽度
$logo_height = imagesy($logo);//logo图片高度
$logo_qr_width = $QR_width / 5;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;
$from_width = ($QR_width - $logo_qr_width) / 2;//重新组合图片并调整大小
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);//输出图片
imagepng($QR, $zz);
}
//首先生成普通二维码,然后添加上logo
die;
}
//生成logo和背景图的二维码
function QRcodepnglogobg($bgImg = './xuanchuan.jpg',$logo = './t.png',$url="http://un.jipinlantu.com", $save_path="./qrcode/urlbgm/")
{
//引入类库
include('phpqrcode/phpqrcode.php');
//二维码里面的链接地址
//二维码图片保存地址
$zz=date("Ymd",time());
mk_dir($save_path.$zz."/");
$zz=$save_path.$zz."/".str_replace("/","_",str_replace("://","_",trim($url))).".png";
QRcode::png($url, $zz, 'L', 4, 2);
//后面两个参数控制二维码大小相关的,可自行调整
//logo图片
if($logo){
$QR = imagecreatefromstring(file_get_contents($zz));
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);//二维码图片宽度
$QR_height = imagesy($QR);//二维码图片高度
$logo_width = imagesx($logo);//logo图片宽度
$logo_height = imagesy($logo);//logo图片高度
$logo_qr_width = $QR_width / 5;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;
$from_width = ($QR_width - $logo_qr_width) / 2;//重新组合图片并调整大小
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);//输出图片
imagepng($QR, $zz );
}
//die;
//添加背景图
$backgroupImg = imagecreatefromstring(file_get_contents($bgImg));
$newQR = imagecreatefromstring(file_get_contents($zz));
//获取新的尺寸
list($width, $height) = getimagesize($zz);
$new_width = 200;
$new_height = 200;
//重新组合图片并调整大小
imagecopyresampled($backgroupImg,$newQR,260, 700, 0, 0,$new_width, $new_height, $width, $height);//输出图片
imagepng($backgroupImg,$zz);
//现在生成的图片就是有logo 有背景的
}
```
- 课程介绍
- thinkphp5.0
- 安装
- 开发规范
- 目录结构
- 配置参数
- 系统常量
- tp5自带的函数
- 助手函数
- 扩展类库
- 基本类库
- Workerman
- think-queue
- 验证码
- 图片
- 权限认证
- 课前准备
- 数据库设计
- 模块设计
- 管理员管理
- 添加
- 编辑
- 删除和批量删除
- 列表页
- 实列
- 权限管理
- 操作日志
- 基于行为的日记录
- 行为日志的扩展
- 助手类库
- 自建函数
- 将数组转成uri字符串
- 获取当前服务器的IP
- curl-post
- 截取文字中间的字符串
- 检查中文姓名
- 省市区分别截取
- 抽奖概率问题
- 短信邮箱模板替换
- 生成csv
- PHP 图片转base64
- 银行卡验证
- json返回接口封装
- 无限极分类
- 病毒
- xml和数组互转
- xml转成数组
- 数组转xml
- tp控制器相关
- 获取thinkph5下控制器和方法名
- 后台查询的简单封装
- 网址信息
- 获取网站logo
- 判断url是否存在
- 获取title
- 判断远程文件是否存在
- 获取页面所有链接
- 过滤
- 截取
- 时间
- 获取服务器信息
- 根据id生成唯一邀请码
- 随机颜色
- 数组字符串互换
- 创建多级目录
- 懒人查询
- 时间和时间戳转换
- 房间id生菜
- 获取需要的数组元素
- 文件和文件夹
- 文件类库
- 文件夹
- 七牛云
- 七牛云运用场景
- 七牛云使用实例
- 邮箱
- 邮箱验证
- 邮箱发送
- 数据库
- 数据库在thinkphp中的补充方法
- 备份和安全
- sql执行
- 数据库备份2
- 时间日历
- 时间格式化
- 日历
- 图片相关
- 自动获取图片主题颜色
- 获取html中的图片路径
- 获取图片场景
- 获取图片实践
- 图片处理类
- 图片处理场景
- 图片处理实践
- 数据验证分析
- 身份证相关
- 新闻
- 自建类库
- 简易分类库
- php 压缩CSS代码
- 身份证
- 分词和抽词
- 分词应用场景
- 分词实践
- 中文转拼音
- 中文转拼音场景
- 中文转拼音实践
- 二维码操作
- 二维码场景
- 二维码实践
- 短地址
- PHPWord
- 插件化
- 插件扩展库
- 插件列表
- 插件安装和卸载
- 插件实践
- 插件的离线安装
- 计划任务
- 计划任务安装
- 计划任务实践
- 定时器
- 注册登录
- 普通登录注册
- 第三方登录注册
- jwt接口登录注册
- 短信
- 飞鸽短信
- 阿里短信
- 消息队列
- 网站地图
- 全站静态化
- 缓存
- 文件导出
- PDF生成
- phpword
- PHPExcel
- 其他类库
- 百度
- 百度语音
- 快递
- 跨域问题
- 宝塔
- 搜索记录