使用 qrencode 生成 png/svg 二维码,用于 Wireguard 客户端配置
Posted
技术标签:
【中文标题】使用 qrencode 生成 png/svg 二维码,用于 Wireguard 客户端配置【英文标题】:Use qrencode to generate png/svg QR code for Wireguard client configuration 【发布时间】:2021-09-07 13:42:34 【问题描述】:我希望在 php 网页上生成二维码。用户从提交表单的页面开始,唯一的输入是新客户的名称。此页面是 *** 客户端的管理器。
重定向后,PHP在页面上生成配置文件进行复制粘贴。用户必须在他们的etc
目录中将此文件保存为wg.conf
。我一直在尝试使用qrencode
,这是一个基于 Linux 的命令行工具,可以使用配置文件在同一页面上生成 QR 码。根据qrencode
上的文档,您可以将文件另存为.png
或.svg
。
我一直在玩它,既尝试通过 URL 作为重定向中的 GET 参数传递数据(唯一的问题是 QR 码很敏感),又使用反引号运算符运行 bash 命令将其保存为用户本地文件中的一个文件。我似乎无法弄清楚将其保存为文件的位置,或者是否有其他解决方案可以在网页上显示它。
【问题讨论】:
【参考方案1】:我会怎么做:
检查这个库https://github.com/neocotic/qrious,你需要做的就是在你的页面上加载js
在文本区域、div 或其他 html 元素中生成要转换为二维码的文本并为其分配 id
使用该id通过纯JS提取数据,现在您有一个文本变量,您现在可以使二维码动态化
一旦您通过 JS 动态提取数据,您就可以使用该变量生成如下所示的二维码:
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">
【讨论】:
以上是关于使用 qrencode 生成 png/svg 二维码,用于 Wireguard 客户端配置的主要内容,如果未能解决你的问题,请参考以下文章
C#中二维码生成 使用Gma.QrCodeNet.Encoding类库却无法使用Renderer类?
C#中二维码生成 使用Gma.QrCodeNet.Encoding类库却无法使用Renderer类?