php - 使用 qrencode 生成 png/svg 二维码,用于 Wireguard 客户端配置
问题描述
我希望在 PHP 网页上生成 QR 码。用户从提交表单的页面开始,唯一的输入是新客户的名称。此页面是 VPN 客户端的管理器。
重定向后,PHP 在页面上生成配置文件进行复制和粘贴。用户必须将此文件保存wg.conf
在他们的etc
目录中。我一直在尝试使用qrencode
基于 Linux 的命令行工具来在配置文件的同一页面上生成 QR 码。根据上的文档qrencode
,您可以将文件另存为.png
或.svg
。
我一直在玩它,既试图通过 URL 作为重定向中的 GET 参数传递数据(唯一的问题是 QR 码很敏感),又通过使用反引号运算符运行 bash 命令将其保存为文件用户的本地文件。我似乎无法弄清楚将其保存为文件的位置,或者是否有其他解决方案可以在网页上显示它。
解决方案
我会怎么做:
检查这个库https://github.com/neocotic/qrious ,你需要做的就是在你的页面上加载 js
在文本区域、div 或其他 HTML 元素中生成要转换为二维码的文本,并为其分配一个 id
使用该 id 通过纯 JS 提取数据,现在您有一个文本变量,您现在可以使 qr 代码动态化
一旦您通过 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">
推荐阅读
- r - 如何遍历数据框列表以在 R 中设置列名?
- javascript - 加载时图像为黑色(涉及 jquery Jack Moore 的图像缩放插件)
- sql - 在 BigQuery 中,分组时从较长的数据创建 STRUCT 的 ARRAY
- python - Python/Visual Studio 错误:终端进程无法启动:shell 可执行文件的路径不存在
- azure - Azure 命令确认后 PowerShell 挂起
- java - 将 jlink 与 org.json:json 工件一起使用时出现自动模块错误
- python - 如何在字典中创建列表而不重复某些键 [Python]?
- python - 使用元组在数据帧之间映射值
- sql - SQL 编译错误:位置 157 的语法错误第 5 行意外'
' - kubernetes - Kubernetes 1.16 弃用 daemonset、statefulset、deployments 和 replicasets