• 本博客已正式上线 IPv4 + IPv6 双栈访问

利用 PHP QR Code 生成二维码支持 URL 直接调用

挨踢网络 Young Free! 6年前 (2018-06-09) 5588次浏览 25个评论 扫描二维码

> 挨踢网络 > 利用 PHP QR Code 生成二维码支持 URL 直接调用

一不小心,又开始“码代码”了,在此,Young Free 得特别声明:哥真不是学计算机的,也不是搞网络工程的!所有代码都来自网络,哥只是根据自己需要,拼接调整了一下。感谢开源源码的大神们,虽然,Young Free 也不知道大神们叫什么名字。

需求

嗯,码代码前,都是要先分析需求的。

Young Free 主题使用的云落的 Git 主题,这款主题,在文章也右上角,提供了扫二维码在手机上阅读博客的功能。之前 Young Free 一直在调用百度网盘的二维码生成 API,但前几日,百度突然关闭了这个功能,导致 Young Free 博客上的这个二维码功能失效了。

方案

利用第三方服务

几经百度,找到了多个替代解决方案,可大多数都不支持 https 调用,这里就不提及了,唯有搜狐快站支持 https 调用,调用地址如下

自行搭建

虽然免费服务也好用,但保不准那天也会关闭服务,于是,Young Free 就有了搭建一个自己专用的二维码生成服务的想法。既然要搭建,选用构架和脚本语言的问题就来了。

构架

根本谈不上构架,这么个简单的服务,选择一个脚本就行了。百度出来结果一大堆,对于 Young Free 来说可行的有 JAVA, Python, PHP 三种语言编写的方案。Java 和 Python 需要更新 哥的阿里云 ESC 环境,这个工程有点大,所以 PHP 是最适合的。接下来就开始继续度娘可用代码。

算法

PHP 生成二维码的方法一大堆,Young Free 要的是最简单的,所以,算法什么的也是浮云。利用 PHP QR Code 源码,2个文件就能搞定所有需求。

源码下载地址:https://sourceforge.net/projects/phpqrcode/

注意事项:PHP环境必须开启支持GD2扩展库支持(一般情况下都是开启状态)

下载下来的一大堆文件,我们只取 phpqrcode.php 一个就行,另外一个 PHP 文件需要我们自己手动写一写。因为不需要在自己服务器上保存二维码,也没有美化的需求,Young Free 百度到了如下可用代码。

不需要美化的终极原因是因为搞不定 QAQ.

问题

这个代码,只能生成源代码里面写好的网址或文字内容的二维码,Young Free 需要的是直接通过 URL 来调用,显然需要改造一下。

既然源码中网址那里是 定量,那可不可以变换成 变量 啊?开干才知道。Young Free 一直在用一个站外链接跳转的中间页,里面就用到了获取 URL 中 跳转目标 URL 的函数。拿过来用用吧。

完善代码

到这里,大功就告成了。其实在 获取目标网址 URL 这个变量这里,折腾了好久,不懂 PHP 的结果就是不知道怎么“打印”获取到的变量为常量,尴尬。

利用 PHP QR Code 生成二维码支持 URL 直接调用

加限制

可 Young Free 并不满足,这个调用地址是可以随随便便手动打开的,没有任何验证,Young Free 的博客可是经常遭到攻击的,不做点限制,VPS 的这点点资源岂不是扛不住。加点限制,非本站站内,不能打开。整个源码如下

调用方式

哦,说了这么多,怎么调用呢?

前台效果

啦啦啦啦~~~如下图,也可以把鼠标移动到文章右上角的 扫描二维码 试试。

利用 PHP QR Code 生成二维码支持 URL 直接调用

源码下载

想搭建自己的二维码生成服务?Young Free 已经把制作好的源码打包好了,下载后,只需替换 Young Free 的网址然后上传到服务器就行了。整个代码只有 121KB。

百度云下载

参考文档:https://blog.csdn.net/sinat_35861727/article/details/73862991


Young Free! , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA 4.0协议进行授权
转载请注明原文链接:利用 PHP QR Code 生成二维码支持 URL 直接调用
喜欢 (11)
[]
分享 (0)
关于作者:
欢迎来吐槽,也欢迎一起交流。如果无法在本文下评论,可以点击信封按钮,给我发送邮件。
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!


请文明发言,谢谢。
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(25)个小伙伴在吐槽
  1. 大神,我看你的地址怎么是这样的啊 怎么改,谢谢!<img data-original="data:image/png;base64
    三问2020-02-29 23:14 回复
    • 我现在用的是主题自带的二维码生成,这个又是用的JS生成方法。我也没研究过。
      Young Free!2020-03-05 20:49 回复
  2. 大佬,按照你的方法,还是不行,感觉是获取不到地址。
    mototown2020-01-22 19:26 回复
  3. 博主是怎么把二维码图片转成base64编码的
    Yiven2019-08-02 13:50 回复
  4. 为什么我的不好用呢 显示不了二维码 地址 http://www.qian.lu/qrcode/?url=https://www.ucwz.net/seo/2214.html
    Www.Last.City2019-03-11 11:40 回复
    • 这个把我难住了,我也不清楚,你看下你的 PHP 开启 GD2 扩展开启了没,没这个是无法生成图片的。
      Young Free!2019-03-13 21:51 回复
  5. 我在想php能不能获取网页视频地址然后输出呢 :grin:
    九日2018-08-14 08:58 回复
    • 肯定可以的,那些个 VIP视频解析服务,不就是这么搞的吗
      Young Free!2018-08-14 10:48 回复
  6. daolao.Orz.png
    Liues2018-07-21 08:13 回复
  7. 厉害了,学习学习
    Blogbyme2018-07-09 16:39 回复
    • 都是大佬们提供的核心,大佬们才厉害,像大佬们学习
      Young Free!2018-07-10 20:36 回复
  8. 我也加个试试
    芭比2018-06-29 13:57 回复
  9. 最近百度的二维码api关闭了,刚好可以自建一个
    Yiveco2018-06-16 07:25 回复
    • 自建才是最稳定的 :mrgreen: 你的博客访问出现了 回应时间过长 的问题,多次刷新无效,我的宽带是 湖南常德移动宽带。
      Young Free!2018-06-16 08:34 回复
      • 刚刚禁止ping服务器IP,然后因为域名是通过a记录解析的所以炸了233
        Yiveco2018-06-16 08:46 回复
        • 服务器禁ping似乎和 A记录解析不冲突额,确定不要检查其它问题?
          Young Free!2018-06-17 22:19 回复
          • 我允许ping之后,a记录就可以解析了,应该是禁ping的锅吧233
            Yiveco2018-06-18 08:14 回复
  10. 我记得张戈博客也有一个,感觉不错的选择
    BanYuner2018-06-10 12:11 回复
    • 刚刚去张戈博客搜了下,还真有2个解决方案,其中 JS 生成二维码,太厉害了,不用担心服务器资源消耗问题,也没有加载慢的问题。
      Young Free!2018-06-10 15:30 回复
      • 我是直接通过php文件执行的,毕竟php执行起来速度比较快
        BanYuner2018-06-10 22:03 回复
        • 好,听大佬意见,我也不折腾了,就用这个PHP生成的。
          Young Free!2018-06-12 21:34 回复