PHP生成二维码
- 2019 年 12 月 17 日
- 筆記
月底了.与之俱来的是花呗的账单和没钱花的恐惧.
刚把手头的工作忙完.也是来总结下吧.这几天涉及到了一个需求.需要生成邀请一个二维码.
二维码嘛.简单.这里我也是直接调用了PHP的类库
PHP QR Code,地址:http://phpqrcode.sourceforge.net/
将代码下载.我们用到的只有其中一个文件.

这里用到的是TP框架,直接将它放到extend目录下.改名为Qrcode.php. 这时候需要注意下命名空间的问题.
然后我们需要用到的是这个文件中的png方法.

其中参数$text表示生成二位的的信息文本;
参数$outfile表示是否输出二维码图片 文件,默认否;
参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%);
参数$size表示生成图片大小,默认是3;
参数$margin表示二维码周围边框空白区域间距值;
参数$saveandprint表示是否保存二维码并 显示。
在我们的控制器中引用这个类 直接调用qrcode的png方法.就可以了. 这里也是直接返回了当前这张二维码的地址.
public function houseQrcode() { $value = "开心快乐每一天";//二维码内容 $qrcode = new QRcode(); ob_clean(); //判断目录是否存在 $dir = 'qrcode/'; if(is_dir($dir)) { $filename = $dir.uniqid().'.png'; } else { mkdir($dir); $filename = $dir.uniqid().'.png'; } //$filename = uniqid().'.png'; $qrcode::png($value,$filename); //exit; return 'http://'.$_SERVER['SERVER_NAME'].'/'.$filename; }
这里最开始调用png方法的时候也是.直接输出的话会在浏览器中乱码.我们如果想直接查看结果的话 将注释中的EXIT注释掉就可以了. ?
这里需要注意一下几个问题:
1.在引入phpqrcode类时,类里没有写命名空间时,实例化时,需要使用斜杠.
2.PHP环境必须开启支持GD2(一般都会开启).