PHP二维码图片生成API

作者:LuckyMoke 时间:2015-09-03

有时候网站项目需要用到二维码生成功能,或者需要一个二维码生成API接口,这时你可以采用第三方的API接口,如果你担心不稳定的话,也可以自己搭建一个API接口。

免费第三方API接口

联图网(这个是专业的免费二维码接口,详细参数参考=>http://www.liantu.com/pingtai/

http://qr.liantu.com/api.php?text=二维码内容

还有我扒下来的别的API接口(缺点是没有自定义参数)JiaThis

http://s.jiathis.com/qrcode.php?url=二维码内容

多说(多说可以设置两个参数size=图片大小,text=二维码内容,缺点是中间有个多说的logo)

http://official.duoshuo.com/api/qrcode/getImage.png?size=240&text=二维码内容

自己搭建API

首先需要一个现成的phpqrcode.php类库文件(文章最下方下载) 然后就是自己来写这个生成二维码的api.php,代码如下

<?php
//载入qrcode类库
include "./phpqrcode.php";
//取得GET参数
$text       = isset($_GET["text"]) ? $_GET["text"] : ''; //二维码内容
$errorLevel = isset($_GET["e"]) ? $_GET["e"] : 'L'; //容错级别 默认L
$PointSize  = isset($_GET["p"]) ? $_GET["p"] : '5'; //二维码尺寸 默认5
$margin     = isset($_GET["m"]) ? $_GET["m"] : '2'; //二维码白边框尺寸 默认2
//去掉下方注释,可以检测二维码内容是否包含某字段 ,防止盗链。
/*
$isok       = strstr($text, "luckymoke.cn"); //要检测的内容根据自己需求改
if(!$isok){
	echo "403 Forbidden";
	exit; //停止继续执行
}
*/
//二维码生成函数
function getqrcode($value,$errorCorrectionLevel,$matrixPointSize,$margin) {
    QRcode::png($value, false, $errorCorrectionLevel, $matrixPointSize, $margin);
}
getqrcode($text, $errorLevel, $PointSize, $margin);
?>

你可以通过伪静态规则,模拟请求一张png图片,配合各cdn服务达到cdn加速的效果。 这里只给出Apache伪静态规则 .htaccess文件

RewriteEngine on
RewriteBase /

RewriteRule ^/qr-(.*)-(.*)-(.*)-(.*).png$ /api.php?e=$1&p=$2&m=$3&text=$4

参数详解:

text: 二维码对应的网址
e  : 容错级别(errorLevel),可选参数如下(缺省值 L):
     L水平 7%的字码可被修正
     M水平 15%的字码可被修正
     Q水平 25%的字码可被修正
     H水平 30%的字码可被修正
p  : 二维码尺寸,可选范围1-10(具体大小和容错级别有关)(缺省值:5)
m  : 二维码白色边框尺寸,缺省值: 2

常规请求方法:http://yourdomain.com/api.php?e=L&p=5&m=2&text=二维码内容 静态png请求方法:http://yourdomain.com/api/qr-$e-$p-$m-$text.png 静态png请求示例:http://yourdomain.com/api/qr-L-5-2-二维码内容.png

完整案例下载

百度云盘 密码:jv2y

Tips

GitHubLuckyMoke

Weibokeailvyou

QQ839488083

米拓交流群

模板有不完善的地方欢迎指正!

1511438794807394.jpg