Tôi đang cố tạo mã QR trên trang web của mình. Tất cả những gì họ phải làm là có một URL trong đó, một biến trên trang web của tôi sẽ cung cấp. Cách dễ nhất để làm điều này là gì?
Tôi đang cố tạo mã QR trên trang web của mình. Tất cả những gì họ phải làm là có một URL trong đó, một biến trên trang web của tôi sẽ cung cấp. Cách dễ nhất để làm điều này là gì?
Câu trả lời:
Điều đáng nói là, ngoài thư viện mã QR do @abaumg đăng , Google còn cung cấp mộtAPI mã QR QR Codes API nhiều nhờ @Toukakoukan cho cập nhật liên kết .
Để sử dụng điều này, về cơ bản:
https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8
300x300
là kích thước của hình ảnh QR bạn muốn tạo,chl
là chuỗi url-mã hóa bạn muốn thay đổi thành một mã QR, vàchoe
là (không bắt buộc) mã hóa.Liên kết, ở trên, cung cấp nhiều chi tiết hơn, nhưng để sử dụng nó, chỉ cần src
một hình ảnh trỏ đến giá trị được thao tác, như sau:
<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" />
Bản giới thiệu:
Cách dễ nhất để tạo mã QR bằng PHP là thư viện phpqrcode .
Các thư viện phpqrcode thực sự nhanh để cấu hình và tài liệu API là dễ hiểu.
Ngoài câu trả lời của abaumg, tôi đã đính kèm 2 ví dụ PHP
từ http://phpqrcode.sourceforge.net/examples/index.php
1. Bộ mã hóa mã QR
đầu tiên bao gồm thư viện từ đường dẫn địa phương của bạn
include('../qrlib.php');
sau đó để xuất hình ảnh trực tiếp dưới dạng luồng PNG, hãy làm như sau:
QRcode::png('your texte here...');
để lưu kết quả cục bộ dưới dạng hình ảnh 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. Bộ giải mã mã QR
Xem thêm bộ giải mã zxing :
http://zxing.org/w/decode.jspx
Khá hữu ích để kiểm tra đầu ra.
3. Danh sách định dạng dữ liệu
Danh sách định dạng dữ liệu bạn có thể sử dụng trong mã QR của mình theo loại dữ liệu:
http://
)Các thư viện endroid / QrCode rất dễ dàng để sử dụng, duy trì tốt, và có thể được cài đặt bằng nhà soạn nhạc. Ngoài ra còn có một gói để sử dụng trực tiếp với Symfony.
Đang cài đặt:
$ composer require endroid/qrcode
Sử dụng :
<?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()
nếu tôi có NHIỀU dữ liệu? Ví dụ, tôi có $a = 1
, $b = 2
, $c = 3
?. Tôi cần sử dụng nhiều hơn MỘT câu hoặc Chuỗi. Làm thế nào tôi có thể làm điều đó?
setText
phương thức chỉ chấp nhận một tham số nên tôi đoán bạn nên nối các biến của mình thành một tham số trước khi chuyển nó. Nhưng tôi không chắc mình đang hiểu vấn đề của bạn một cách chính xác, có lẽ bạn nên mở một vấn đề trong repo của thư viện.
qrcode-generator trên Github. Kịch bản đơn giản nhất và tác phẩm như một sự quyến rũ.
Ưu điểm:
Tôi đã sử dụng google qrcode api một thời gian, nhưng tôi không hoàn toàn thích điều này vì nó yêu cầu tôi phải truy cập Internet để truy cập hình ảnh được tạo.
Tôi đã thực hiện một nghiên cứu nhỏ về dòng lệnh và phát hiện ra rằng linux có công cụ dòng lệnh qrencode
để tạo mã qr.
Tôi đã viết một kịch bản nhỏ này. Và phần tốt là hình ảnh được tạo ra có kích thước nhỏ hơn 1KB. Dữ liệu được cung cấp chỉ đơn giản là một 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);
Sau đó, trong html, tôi tải hình ảnh:
<img class="emrQRCode" src="<?=$imgData ?>" />
Bạn chỉ cần cài đặt nó. [hầu hết các ứng dụng hình ảnh trên linux sẽ cài đặt nó một cách bí mật mà bạn không nhận ra.
http://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
Tôi biết câu hỏi là làm thế nào để tạo mã QR bằng PHP, nhưng đối với những người khác đang tìm kiếm cách tạo mã cho các trang web thực hiện việc này bằng javascript thuần túy là một cách tốt để làm điều đó. Các jquery-qrcode plugin jquery cũng nó.