我正在尝试在我的网站上生成QR码。他们要做的就是在其中包含一个URL,该URL将在我的网站上提供。最简单的方法是什么?
Answers:
值得补充的是,除了@abaumg发布的QR码库外,Google还提供了一个QR Code API QR Codes API 非常感谢@Toukakoukan的链接更新。
要使用this,基本上是:
https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8
300x300
是您要生成的QR图像的尺寸,chl
是您要更改为QR码的url编码的字符串,并且choe
是(可选的)编码。上面的链接提供了更多详细信息,但要使用它,只需src
将图像点的指向操纵值,如下所示:
<img src="https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8" title="Link to Google.com" />
演示:
用PHP生成QR码的最简单方法是phpqrcode库。
该phpqrcode库是非常快的配置和API文档是很容易理解。
除了abaumg的答案外,我还附加PHP
了http://phpqrcode.sourceforge.net/examples/index.php中的 2个示例
1. QR码编码器
首先从您的本地路径包含库
include('../qrlib.php');
然后将图像直接输出为PNG流,例如:
QRcode::png('your texte here...');
将结果保存为本地PNG图像:
$tempDir = EXAMPLE_TMP_SERVERPATH;
$codeContents = 'your message here...';
$fileName = 'qrcode_name.png';
$pngAbsoluteFilePath = $tempDir.$fileName;
$urlRelativeFilePath = EXAMPLE_TMP_URLRELPATH.$fileName;
QRcode::png($codeContents, $pngAbsoluteFilePath);
2. QR码解码器
另请参见zxing解码器:
http://zxing.org/w/decode.jspx
检查输出非常有用。
3.数据格式清单
您可以根据数据类型在QR码中使用的数据格式列表:
http://
)所述endroid / QRCODE库易于使用,保持良好,并且可以使用作曲家安装。还有一个捆绑包可直接与Symfony一起使用。
安装:
$ composer require endroid/qrcode
用法:
<?php
use Endroid\QrCode\QrCode;
$qrCode = new QrCode();
$qrCode
->setText('Life is too short to be generating QR codes')
->setSize(300)
->setPadding(10)
->setErrorCorrection('high')
->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
->setLabel('Scan the code')
->setLabelFontSize(16)
->setImageType(QrCode::IMAGE_TYPE_PNG)
;
// now we can directly output the qrcode
header('Content-Type: '.$qrCode->getContentType());
$qrCode->render();
// or create a response object
$response = new Response($qrCode->get(), 200, array('Content-Type' => $qrCode->getContentType()));
setText
方法仅接受一个参数,我猜您应该在传递变量之前将变量连接为一个。但是我不确定我是否正确理解了您的问题,也许您应该在图书馆的库中打开一个问题。
我曾经使用过google qrcode api,但是我不太喜欢这样做,因为它要求我必须在Internet上才能访问生成的图像。
我做了一个小命令研究,发现linux有一个qrencode
用于生成qr代码的命令行工具。
我写了这个小脚本。好的部分是生成的图像大小小于1KB。好吧,提供的数据只是一个URL。
$url = ($_SERVER['HTTPS'] ? "https://" : "http://").$_SERVER['HTTP_HOST'].'/profile.php?id='.$_GET['pid'];
$img = shell_exec('qrencode --output=- -m=1 '.escapeshellarg($url));
$imgData = "data:image/png;base64,".base64_encode($img);
然后在html中加载图像:
<img class="emrQRCode" src="<?=$imgData ?>" />
您只需要安装它。[Linux上的大多数映像应用程序都会在没有意识到的情况下将其安装在引擎盖下。
http://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
我知道问题是如何使用PHP生成QR代码,但是对于其他正在寻找一种方法来为使用纯JavaScript的网站生成代码的人来说,这是一个很好的方法。在jQuery的QR码的jQuery插件是否良好。