分享张戈博客自用的php网址在线转换二维码的API源码

最新补充:博客已分享性能最好的js生成二维码方案==>传送门

去年张戈博客曾分享过一篇与二维码API有关的文章:《分享几个可用的二维码API,以及给博客添加文章二维码图片的方法》,由于第三方二维码API总感觉稳定性和自定义性稍差,所以就到网上爬了一下相关代码,自己搭建了一个二维码API,用了几个月感觉良好,完全可以满足我博客的自定义需求。至于博客二维码这个功能是否鸡肋,那就仁者见仁智者见智了。我个人认为,在这个移动互联网飞速发展的时代,抢占先机,做好移动端的用户体验至关重要!

分享张戈博客自用的php网址在线转换二维码的API源码

这个功能不是原创,而且百度一搜一大把,都不好意思拿来分享一二。最近看到有网友留言,想要我分享这个二维码API源码,鉴于博客分享初衷,就厚着脸皮贴出来了。当然,不止是那个qr code类,而是搭建成品的整体代码或心得,毕竟张戈博客存在的目的就是尽力降低各类IT教程的使用门槛(哈,是不是感觉很高尚...)!

一、PHP 代码

将以上代码保存为php文件(比如qr.php),上传到网站指定目录(比如根目录 /)。

二、QrCode类

下载PHP的QrCode类,上传到网站目录,其实百度一搜一大把,还是贴上张戈博客自用的文件吧!

Ps:以上相关代码均已包含在内。

三、CDN 加速

因为这个API是在线生成的,如果请求过于频繁,将会影响到服务器性能和加载速度。所以,我们有必要继续优化一下。我个人想到3个解决方案:

①、每生成一个新的二维码图片就缓存一份到服务器,下次若是相同的内容,将直接读取;

②、利用伪静态重写请求地址,伪装成静态文件格式,比如png、jpg等,然后开启免费CDN;

③、结合①和②,实现伪静态+CDN加速+浏览器缓存加速,达到优化加载速度。

目前张戈博客仅使用了第 ② 种方案,已完全可以满足博客的需求,所以就懒得去折腾更完善的方法,感兴趣的童鞋可以自己去试试,下面说一下伪静态规则。

张戈博客将这个API搭建在万网的免费虚拟主机上,所以仅分享Apache伪静态规则,其他WEB服务器请自行解决。

Apache伪静态规则:

注:以上是将API源码上传到网站根目录下的 qr 文件夹的例子!

伪静态之后,这个二维码地址就是一个正常的 png格式了,只要到免费CDN(比如百度云加速或360网站卫士等)开启静态资源缓存即可实现CDN加速。

四、使用范例

直接访问本文第一段代码所保存的文件就能看到简单的使用说明了:

查看效果:http://seo.zgboke.com/qr/0_l_3_http://zhangge.net_cdn.png

按下F12,到 NetWork 选项卡查看头部已经可以看到百度云加速的HIT缓存标识了!

至于如何应用到博客当中,请移步查看张戈博客以前分享的教程:http://zhangge.net/4609.html

文件下载

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:32   其中:访客  24   博主  8

  1. 微饭 3 来自天朝的朋友 谷歌浏览器 Windows 7 重庆市 电信

    前不久用过,二维码+LOGO模式,个人感觉有点华而不实,只在主题设置后台加了个开关。

    • 张戈 [博主] 这家伙可能用了美佬的代理 谷歌浏览器 Windows 7 美国 佛罗里达州杜瓦尔县杰克逊维尔市Crissic解决方案有限公司

      仁者见仁智者见智,自己喜欢就好,反正那个位置闲着也是闲着,也许就有人想换到手机访问呢?

      • 微饭 3 来自天朝的朋友 谷歌浏览器 Windows 7 重庆市 电信

        当然,一些功能还是要根据用户习惯来制定,个人爱好也是必须的。

    • 完美 2 来自天朝的朋友 谷歌浏览器 Windows 7 陕西省西安市 电信

      这些代码 怎么加上LOGO

  2. 阿里百秀 2 来自天朝的朋友 谷歌浏览器 Windows 7 河南省信阳市 电信

    微信的受众面现在这么广,提前抢占个先机是很不错的想法

  3. 幻杀博客 5 来自天朝的朋友 谷歌浏览器 Windows 7 广东省佛山市 睿江科技

    还是直接调API方便……

  4. 网站模板 2 来自天朝的朋友 火狐浏览器 Windows 7 广东省深圳市福田区 电信

    rewrite ^qrcode/(.*)_(.*)_(.*)_http:/(.*)_cdn\.png$ qrcode/index.php?m=$1&e=$2&p=$3&url=http://$4 last;
    rewrite ^qrcode/(.*)_(.*)_(.*)_(.*)_cdn\.png$ qrcode/index.php?m=$1&e=$2&p=$3&url=$4 last

    这是我在nginx下面的伪静态规则,不行,有问题,

  5. 蚂蚁 1 来自天朝的朋友 谷歌浏览器 Windows 7 广西南宁市西乡塘区 电信

    博主,根据你这篇文章,我实现了网址二维码,在此非常感谢!
    同时有个问题想请教下,就是防盗链的问题,因为本人主机配置较低,所以才有此问题。

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 联通

      注意代码中有一段:

      注释下一个if,使用上一个if语句即可开启域名验证。

      • 蚂蚁 1 来自天朝的朋友 Safari浏览器 Mac OS X 10_10_3 广西南宁市 联通

        非常感谢@

        • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 联通

          欢迎常来逛逛

  6. 西贝博客 4 来自天朝的朋友 Safari浏览器 Mac OS X 10_10_3 河南省 移动

    无私的奉献!

  7. 胡歌网摘 4 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市 电信

    测试了,有个问题就是,如果url长短不一,生成的图片大小是不同的,例如这两个。

    这样用到网页里面的话,就……

    • 张戈 [博主] 来自天朝的朋友 Safari浏览器  Android 4.4.2 NX40X Build/KOT49H 广东省深圳市 联通

      这问题也太幼稚了吧,二维码代表的就是url或字符内容,url越长,二维码就越复杂,图片也就越大。
      话又说回来,图片越大用到网页又如何??你怕图片有几百兆还是啥的??就一个文章二维码,我想不出用到网页中会用什么问题?

      • 胡歌网摘 4 来自天朝的朋友 谷歌浏览器 Windows 7 广东省东莞市 联通

        很明显你没看那两个实例,图片大小指的是规格大小、长宽、像素!不是指文件体积、占用空间。
        看看这两个吧,对比下。
        http://qr.liantu.com/api.php?el=l&w=200&m=10&text=http://zhangge.net

        http://qr.liantu.com/api.php?el=l&w=200&m=10&text=http://zhangge.net/ental-decay-children-breathrserver/v1/create-qr-code.html

        • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省深圳市 联通

          直接说图片尺寸不就好了。。。
          确实存在尺寸不同问题,你可以研究研究。

          • 胡歌网摘 4 来自天朝的朋友 谷歌浏览器 Windows 7 广东省东莞市 电信IDC机房

            一··············

  8. 灌水小鱼 0 来自天朝的朋友 谷歌浏览器 Windows 7 湖南省长沙市 电信

    查找生成二维码的资料来到这里,博主写得很详细,对我帮助很大,感谢!

  9. 清风美文 2 来自天朝的朋友 谷歌浏览器 Windows 7 陕西省西安市 电信

    这个挺实用,研究 一下去了

  10. 感谢作者的无私分享! 0 来自天朝的朋友 谷歌浏览器 Windows 7 云南省昆明市 电信

    终于解决了一个心病,回访致谢。

  11. insunshine 0 来自天朝的朋友 谷歌浏览器 Windows 7 广东省佛山市顺德区 电信

    非常好的教程!不过要怎么样才能把logo插入到二维码的中间?

  12. 花开花落 0 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市天河区 电信

    想加个LOGO描边模式,可以实现吗?

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

      没试过,你可以研究看看。

  13. 逛这里 1 来自天朝的朋友 搜狗浏览器 Windows 10 广东省佛山市南海区 电信

    这个东西其实很实用的,哈哈,谢谢站长分享!

  14. 番茄 2 来自天朝的朋友 谷歌浏览器 Windows 10 河北省石家庄市 铁通

    这个之前我折腾过,后来撤掉了。

  15. 完美 2 来自天朝的朋友 谷歌浏览器 Windows 7 陕西省西安市 电信

    怎么加头像 大神~~~~~

  16. 完美 2 来自天朝的朋友 谷歌浏览器 Windows 7 陕西省西安市 电信

    JS的无法保存图片,PHP的 没LOGO 怎么加LOGO啊

  17. 刘传鹏博客 1 来自天朝的朋友 火狐浏览器 Windows 10 云南省昆明市 电信

    感谢分享

  18. jy 0 来自天朝的朋友 谷歌浏览器 Windows 10 浙江省杭州市 电信

    有没有源码呢 小白 不会用 谢谢提供

加载中,请稍候...