thinkphp5.0生成带编号的二维码
需要生成二维码,类似于摩拜单车的二维码那样,直接往实物上贴的
直性子上代码
public function qrcode($url){
//获取要生成的数量
//引入二维码生成插件
vendor("phpqrcode.phpqrcode");
// 生成的二维码所在目录+文件名
$path = "./uploadfile/erweima/".date('Ymd',time()).'/';//生成的二维码所在目录
if(!file_exists($path)){
mkdir($path, 0700,true);
}
$time = $url.'.png';//生成的二维码文件名
$fileName = $path.$time;//1.拼装生成的二维码文件路径
$level = 'L'; //3.纠错级别:L、M、Q、H
$size = 10;//4.点的大小:1到10,用于手机端4就可以了
//二维码内容
$link = WEB_HOST.'index.php/prize/index/index?num='.$url;
\QRcode::png($link, $fileName, $level, $size);//生成二维码
$img=WEB_HOST.substr($fileName, 2);//二维码路径
//到这其实已经生成了,现在要将二维码和编号合成一张图片
//到这其实已经生成了,现在要将二维码和编号合成一张图片
//到这其实已经生成了,现在要将二维码和编号合成一张图片
//重要的事情说三遍
$result=$this->final_qrcode($url,$img);
}
/**
* @Action: final_qrcode
* @Actiontest: 将二维码和二维码编号合成一张图片 number 编号 图片路径
* @Author: 张先生
*/
public function final_qrcode($url,$img){
//给生成的二维码添加背景图(方法二)
$bigImgPath ='.'.substr($img, 22);
$bigImg = imagecreatefromstring(file_get_contents($bigImgPath));
//编号 开始
$wenzi = $url;
$red = imagecolorallocate($bigImg, 0,0, 0);
imagefttext($bigImg, 18, 0, 150, 395, $red, './MSYHBD.TTF', $wenzi);
//编号 结束
header('Content-Type:image/png');
$savepath="./uploadfile/finalerweima/".date('Ymd',time())."/";//推广二维码本地存储路径
if(!file_exists($savepath)){
mkdir($savepath, 0700,true);
}
$time=$url.".png";
$savepath=$savepath.$time;
imagepng($bigImg,$savepath);//推广二维码存到本地
$savepath=WEB_HOST.substr($savepath, 2);
$data=[
'img'=>$savepath,//路径
'number'=>$url,//编号
'erw_class'=>$this->erw_class,//奖品
'erw_addtime'=>time(),
];
//添加
$act=db('dkerweima')->insertGetid($data);
}
张先生的博客