利用google开放api生成二维码以后修改调整,也可以省去产生二维码图片存储的空间、节省服务器资源。但是,有一点不好是google在国内容易被墙。
一、接口地址及参数说明
接口地址:http://chart.apis.google.com/chart?chs=宽高值x宽高值&cht=qr&chld=等级|边距&chl=内容
参数说明:
- 宽高值:生成二维码尺寸,单位是像素,目前生成的二维码都是正方形的,所以两个宽高值都设置为一样的值
- 等级:四个等级,L-默认,可以识别已损失的7%的数据;M-可以识别已损失15%的数据;Q-可以识别已损失25%的数据;H-可以识别已损失30%的数据
- 边距:生成的二维码离图片边框的距离
- 内容:生成二维码的内容,但一定要urlEncode
二、示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param string $chl 二维码包含的信息,可以是数字、字符、二进制信息、汉字。不能混合数据类型,数据必须经过UTF-8 URL-encoded。如果需要传递的信息超过2K个字节,请使用POST方式 * @param int $widhtHeight 生成二维码的尺寸设置 * @param string $EC_level 可选纠错级别(容错率),QR码支持四个等级纠错,用来恢复丢失的、读错的、模糊的、数据。 * L-默认:可以识别已损失的7%的数据 * M-可以识别已损失15%的数据 * Q-可以识别已损失25%的数据 * H-可以识别已损失30%的数据 * @param int $margin 生成的二维码离图片边框的距离(外补白) */ function CreateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='2') { $chl = urlencode($chl); return '<img src="http://chart.apis.google.com/chart?chs='.$widhtHeight.'x'.$widhtHeight.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$chl.'" alt="QR code"/>'; } // 调用 $url="https://mounui.com"; echo CreateQRfromGoogle($url,210); |
无论在什么语言中,如JS、Python、PHP都要把内容给urlencode。
其他生产二维码的api:
- 联图网(无https):http://qr.topscan.com/api.php?text=https://mounui.com
- iClick接口 (无https):http://bshare.optimix.asia/barCode?site=weixin&url=https://mounui.com
- K780数据网(支持https和http)
http:http://api.k780.com/?app=qr.get&data=https://mounui.com
https:https://sapi.k780.com/?app=qr.get&data=https://mounui.com
- QR Code Generator(https接口):https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=https://mounui.com
- 搜狐视频:https://my.tv.sohu.com/user/a/wvideo/getQRCode.do?text=https://mounui.com
- 姬长信API:https://api.isoyu.com/qr/?m=2&e=L&p=10&url=https://mounui.com
- myitmx:https://api.myitmx.cn/qr/?m=0&e=H&p=10&url=https://mounui.com
- 腾讯http:http://mobile.qq.com/qrcode?url=https://mounui.com
使用说明:把url=后面的网址改成你要生成二维码的;用它们只需要填写好网址就能自动生成二维码,方便实用,以上几个,任选一种即可。
我的微信
扫一扫加我微信