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

免费第三方API接口

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

http://qr.liantu.com/api.php?text=二维码内容
![2020-04-02T04:09:56.png][1]
可以使用<img src="http://qr.liantu.com/api.php?text=x"/>进行引用
2下载图片 http://qr.liantu.com/api.php?text=x 进行引用
3直接引用网址 http://qr.liantu.com/api.php?text=x
x 必须用UTF8编码格式,x内容出现 & 符号时,请用 %26 代替,
换行符使用 %0A

引用参数
以下参数可用于引用二维码图片时定义图片样式

参数引用例子:http://qr.liantu.com/api.php?&bg=ffffff&fg=cc0000&text=x

参数    描述    赋值例子
bg    背景颜色    bg=颜色代码,例如:bg=ffffff
fg    前景颜色    fg=颜色代码,例如:fg=cc0000
gc    渐变颜色    gc=颜色代码,例如:gc=cc00000
el    纠错等级    el可用值:h\q\m\l,例如:el=h
w    尺寸大小    w=数值(像素),例如:w=300
m    静区(外边距)    m=数值(像素),例如:m=30
pt    定位点颜色(外框)    pt=颜色代码,例如:pt=00ff00
inpt    定位点颜色(内点)    inpt=颜色代码,例如:inpt=000000
logo    logo图片    logo=图片地址,例如:logo=http://www.liantu.com/images/2013/sample.jpg

实例

<img src="http://qr.liantu.com/api.php?bg=f3f3f3&fg=ff0000&gc=222222&el=l&w=200&m=10&text=www.liantu.com"/>

上面的实例在页面直接显示了一张二维码图片。
这张二维码图片的包含了参数背景颜色(bg)、前景颜色(fg)、渐变颜色(gc)、纠错等级(el)、图片宽度(w)、外边距(m)。
结果
二维码
还有我扒下来的别的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

PHP二维码图片生成API示例.zip
2020-04-02T04:08:24.png

搭建自己的PHP二维码API源码

使用教程
源码上传至服务器即可。
搭建自己的PHP二维码API源码二维码api.zip
调用代码(以下后面的那个域名修改成自己的域名就可以啦)

<img src="https://www.n-1.cn/api/ewm/?text=https://www.n-1.cn/&size=100" >

参数说明

参数名    说明
text    需要转为二维码的文本内容,不允许为空。
size    生成二维码的大小,默认按二维码复杂程度自动设定大小,单位像素,可为空。
示例
生成宽度为100px,内容为https://www.n-1.cn的二维码

Last modification:April 2, 2020
如果觉得我的文章对你有用,请随意赞赏