0x01 为什么要用PHP生成二维码

想做一个支付页面需要生成二维码给手机扫描,google有一个好用的二维码生成api但是生在天朝的我们却不能访问,国内也有很多二维码生成api很多就是今天可以访问明天就不行了,所有就有了自己生成二维码的想法。

0X02 php生成二维码源码介绍

PHP QR Code 是用于生成 QR Code、二维条码的开源 (LGPL) 库。基于 libqrencode C 库,提供用于创建 QR Code 条码图像的 API(PNG、JPEG,感谢 GD2)。纯粹在 PHP 中实现,没有外部依赖项(如果需要,GD2 除外)
下载地址:
https://sourceforge.net/projects/phpqrcode/files/

一些库功能包括:

  • 支持二维码版本(大小)1-40
  • 数字、字母数字、8 位和汉字编码。(汉字编码没有经过全面测试,如果你启用了日本编码,你可以通过验证它来贡献:))
  • 纯粹用 PHP 实现,除 GD2 外没有外部依赖
  • 导出为 PNG、JPEG 图像,也导出为位表
  • TCPDF 二维条码 API 集成
  • 易于配置
  • 用于加速计算的数据缓存
  • 提供的合并工具有助于将库部署为一个大的无依赖文件,易于“包含且无需担心”
  • 调试数据转储、错误记录、时间基准测试

0x3 php生成二维码源码安装

安装,只需包括:

  • qrlib.php 完整版(你还必须提供所有库文件形式的包和缓存目录)

  • phpqrcode.php用于合并版本(只有一个文件,但由于禁用缓存和更快的屏蔽配置,代码速度较慢且准确度较低)

0x04 php生成二维码案例

参数说明

* phpqrcode php生成二维码
* $frame string 二维码内容
* $filename string|false 默认为否,不生成文件,只将二维码图片返回,否则需要给出存放生成二维码图片的路径
* $level 默认为L,这个参数可传递的值分别是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)。这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比。
* $size int 生成二维码的区域大小点的大小:1到10
* $margin int 图片留白大小
* $saveandprint string 保存二维码图片并显示出来,$outfile必须传递图片路径
  • 生成二维码直接输出
<?php
include ‘phpqrcode.php’;
QRcode::png(‘http://www.baidu.com’);
?>
  • 获取二维码的base64字符串

    需要将QRimage::png()方法中的Header(“Content-type: image/png”);注释掉,然后如下调用

<?php
require_once 'qrcode.class.php';
$url = urldecode($_GET["data"]);
$key = "This merged version was configured to not requre any external files";
ob_start();
QRcode::png($key,false,'L', 4, 1);
$img = ob_get_contents();
ob_end_clean();
$imgInfo = 'data:png;base64,' . chunk_split(base64_encode($img));
ob_flush();
?>
<div class="zfb_img">
<img class="zfk_img" src='zfk.png'>
<img class="info_img" src='<?php echo $imgInfo; ?>'>
</div>

[#zeyu#]这撒大声地放假了靠加分撒大声地阿道夫发送到啊打赏[/#zeyu#]