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(一般都会开启).