首页 > 解决方案 > 使用 qrencode 生成 png/svg 二维码,用于 Wireguard 客户端配置

问题描述

我希望在 PHP 网页上生成 QR 码。用户从提交表单的页面开始,唯一的输入是新客户的名称。此页面是 VPN 客户端的管理器。

重定向后,PHP 在页面上生成配置文件进行复制和粘贴。用户必须将此文件保存wg.conf在他们的etc目录中。我一直在尝试使用qrencode基于 Linux 的命令行工具来在配置文件的同一页面上生成 QR 码。根据上的文档qrencode,您可以将文件另存为.png.svg

我一直在玩它,既试图通过 URL 作为重定向中的 GET 参数传递数据(唯一的问题是 QR 码很敏感),又通过使用反引号运算符运行 bash 命令将其保存为文件用户的本地文件。我似乎无法弄清楚将其保存为文件的位置,或者是否有其他解决方案可以在网页上显示它。

标签: phpbashimageqr-codewireguard

解决方案


我会怎么做:

  1. 检查这个库https://github.com/neocotic/qrious ,你需要做的就是在你的页面上加载 js

  2. 在文本区域、div 或其他 HTML 元素中生成要转换为二维码的文本,并为其分配一个 id

  3. 使用该 id 通过纯 JS 提取数据,现在您有一个文本变量,您现在可以使 qr 代码动态化

  4. 一旦您通过 JS 动态提取数据,您就可以使用该变量生成 qr 代码,如下所示:

var x = 'sample text'
var qr = window.qr = new QRious({
  element: document.getElementById('qrious'),
  size: 200,
  value: x
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrious/4.0.2/qrious.min.js"></script>
<canvas id="qrious">


推荐阅读