Mã QR (Mã phản hồi nhanh) là định dạng hình ảnh có thể đọc được bằng máy chứa các ô vuông đen trắng. Nó được sử dụng để lưu trữ thông tin như URL, ID sản phẩm, v.v. Đây là một loại mã vạch ma trận hoặc mã vạch hai chiều.
Nó là một hình thức lưu trữ và truy xuất dữ liệu đơn giản tiện lợi và thậm chí còn trở nên phổ biến hơn với sự ra đời của điện thoại thông minh. Máy ảnh trong điện thoại thông minh có thể hoạt động như một trình đọc và đọc mã QR và giúp giải mã dữ liệu được lưu trữ trong đó.
Bài viết này đưa ra nhiều ví dụ nếu bạn muốn một giải pháp tạo mã QR trong PHP. Có rất nhiều thư viện PHP có sẵn để tạo mã QR. Bài viết này sử dụng thư viện mã QR PHP.
1. Ví dụ nhanh
Ví dụ nhanh này trả lại mã QR cho trình duyệt trong một dòng. Nó tạo đầu ra dưới dạng luồng PNG.
<?php
require_once __DIR__ . '/vendor/phpqrcode/qrlib.php';
// Displays QR Code image to the browser
QRcode::png('PHP QR Code :)');
Cài đặt thư viện mã QR PHP
Tải thư viện mới nhất version và giải nén nó vào thư mục nhà cung cấp ứng dụng của bạn. Mã nguồn có thể tải xuống trong bài viết này có thư viện.
Tất cả các ví dụ trong bài viết này đều có mã để bao gồm tệp thư viện phù hợp để sử dụng tính năng của nó.
Trong bài viết trước, chúng ta đã thấy mã cho trình tạo mã QR PHP bằng thư viện tc-lib-barcode.
2. Hiển thị mã QR bằng hình ảnh HTML
Để hiển thị mã QR bằng thẻ hình ảnh HTML, hãy liên kết nguồn hình ảnh HTML với tệp PHP trả về dữ liệu PNG mã QR.
Tệp generate.php trả về mã QR trong mã bên dưới bằng thư viện PHP QrCode. Hình ảnh HTML đề cập đến tệp này để hiển thị mã QR trong trình duyệt.
show-qr-code-in-HTML-img/generate.php
<?php
require_once __DIR__ . '/vendor/phpqrcode/qrlib.php';
// Displays QR Code image to the browser
QRcode::png('PHP QR Code :)');
<?php
require_once __DIR__ . '/../vendor/phpqrcode/qrlib.php';
// outputs image as PNG that can be refered to a HTML image 'src'
QRcode::png('PHP QR Code :)');
?>
show-qr-code-in-HTML-img/view.php
<img src=" />
2. Truyền đối số cho trình tạo mã QR
Truyền tham số cho trình tạo mã QR giúp thực hiện xử lý động về tham số.
Ví dụ: chúng tôi có thể chuyển id liên hệ để truy xuất thông tin liên hệ để gộp thông tin đó với đầu ra mã QR.
Ví dụ này cho thấy cách gửi tham số và xử lý chúng trong trình tạo QR.
Tệp view.php chuẩn bị tham số mã QR trong PHP. Sau đó, nó sẽ gửi nó đến generate.php trong truy vấn. URL này có tham số mã QR được chỉ định cho nguồn hình ảnh HTML.
show-qr-code-in-html-img/view.php
<?php
// initialize PHP parameter to send to the QR code generator
$QRParameter = 1234;
?>
<img src=" echo $QRParameter; ?>" />
Trong tệp generate.php này, nó thực hiện thao tác đơn giản đối với đối số đã truyền. Nó thêm tiền tố vào một chuỗi với tham số GET đã nhận và gói dòng được thao tác vào mã QR PNG.
show-qr-code-in-html-img/generate.php
<?php
if (empty($_GET['id'])) {
echo "<b>ERROR:</b> Bad request. Required parameters are missing.";
exit;
} else {
require_once __DIR__ . '/../vendor/phpqrcode/qrlib.php';
$inputString = $_GET['id'];
// Do not return anything to the browser
ob_start("callback");
// Process the input string
$codeText="DEMO - " . $inputString;
// end of processing
$debugLog = ob_get_contents();
ob_end_clean();
// outputs QR code as a PNG data
QRcode::png($codeText);
}
?>
3. Lưu mã QR trên máy chủ
Ví dụ này lưu mã QR được tạo trên máy chủ.
Nó xác định dữ liệu mã QR và hậu tố tên tệp png trong một mảng. Sau đó, nó sử dụng chúng trong khi tạo mục tiêu để lưu mã QR.
lưu-qr-code-in-server.php
<?php
require_once __DIR__ . '/vendor/phpqrcode/qrlib.php';
// how to configure silent zone (frame) size
$qrContent = array('content' => 'Contact information', 'slug' => 'contact-info');
$target = "uploads/qr-code-dir/";
$filePath = $target . 'ouput-qr-code-' . $qrContent['slug'] . '.png';
if (!file_exists($filePath)) {
QRcode::png($qrContent['content'], $filePath);
}
?>
<img src=" echo $filePath; ?>" />
4. Định cấu hình Mã QR Mức ECC, Hệ số thu phóng và Kích thước khung hình
Thư viện QRCode PHP xác định các hằng số cho các mức ECC, hệ số Thu phóng và Kích thước khung hình khác nhau. Các yếu tố này được sử dụng cho các mục đích sau khi tạo mã QR.
Chương trình này tạo mã QR ở các cấp độ L, M, Q và H với các hằng số QR thích hợp.
- Mức ECC là phần trăm thiệt hại cho phép mà không ảnh hưởng đến việc đọc dữ liệu.
- Hệ số thu phóng là độ phân giải được phép có thể thay đổi dựa trên các trường hợp sử dụng.
- Vùng im lặng Kích thước khung hình – Kích thước khung hình vùng im lặng hoặc yên tĩnh thay đổi dựa trên các ma trận khác nhau. Nên đặt mã QR trên hoặc bằng 4 khối.
qr-code-ecc-level.php
<?php
require_once __DIR__ . '/vendor/phpqrcode/qrlib.php';
require_once __DIR__ . '/vendor/phpqrcode/qrconst.php';
$qrContent="Demo data to bundle into a QR code";
$target = "uploads/ecc-level/";
// generating QR code in the 4 ECC level
QRcode::png($qrContent, $target . 'l.png', QR_ECLEVEL_L);
QRcode::png($qrContent, $target . 'm.png', QR_ECLEVEL_M);
QRcode::png($qrContent, $target . 'q.png', QR_ECLEVEL_Q);
QRcode::png($qrContent, $target . 'h.png', QR_ECLEVEL_H);
?>
<img src=" echo $target; ?>l.png" />
<img src="<?php echo $target; ?>m.png" />
<img src="<?php echo $target; ?>q.png" />
<img src="<?php echo $target; ?>h.png" />
Chương trình này thêm hệ số thu phóng từ 1 đến 4 với hằng số QR_ECLEVEL_L ECC.
qr-code-pixel-zoom-factor.php
<?php
require_once __DIR__ . '/vendor/phpqrcode/qrlib.php';
$qrContent="Demo data to bundle into a QR code with zoom factor";
$target = "uploads/pixel-zoom-qr-code/";
// generating QR code with 4 ECC level and zoom factor
QRcode::png($qrContent, $target . 'l_1.png', QR_ECLEVEL_L, 1);
QRcode::png($qrContent, $target . 'l_2.png', QR_ECLEVEL_L, 2);
QRcode::png($qrContent, $target . 'l_3.png', QR_ECLEVEL_L, 3);
QRcode::png($qrContent, $target . 'l_4.png', QR_ECLEVEL_L, 4);
?>
<img src=" echo $target; ?>l_1.png" />
<img src="<?php echo $target; ?>l_2.png" />
<img src="<?php echo $target; ?>l_3.png" />
<img src="<?php echo $target; ?>l_4.png" />
Chương trình này tạo mã QR với tất cả các yếu tố ECC, Zoom và Frame hằng số này của thư viện.
im lặng-khu-khung-size.php
<?php
require_once __DIR__ . '/vendor/phpqrcode/qrlib.php';
$qrContent="Demo data to bundle into a QR code with frame size";
$target = "uploads/pixel-zoom-qr-code/";
// generating
// frame config values below 4 are not recommended !!!
QRcode::png($qrContent, $target . 'l_3_4.png', QR_ECLEVEL_L, 3, 4);
QRcode::png($qrContent, $target . 'l_3_6.png', QR_ECLEVEL_L, 3, 6);
QRcode::png($qrContent, $target . 'l_3_10.png', QR_ECLEVEL_L, 3, 10);
// displaying
?>
<img src=" echo $target; ?>l_3_4.png" />
<img src="<?php echo $target; ?>l_3_6.png" />
<img src="<?php echo $target; ?>l_3_10.png" />
5. Thêm số điện thoại, email và thông tin liên hệ vào mã QR
Phần này có các ví dụ PHP để tạo mã QR để đính kèm thông tin liên hệ. Nó chuẩn bị nội dung mã QR với “tel:”. liên kết “sms:” và “mail:” và đính kèm nó vào mã QR.
add-phone-to-call.php
<?php
require_once __DIR__ . '/vendor/phpqrcode/qrlib.php';
$target = "uploads/qr-code-phone/";
$phone="(091)700-001-710";
// attache phone to call
$qrContent="tel:" . $phone;
QRcode::png($qrContent, $target . 'phone-to-call.png', QR_ECLEVEL_L, 3);
?>
<img src=" echo $target; ?>phone-to-call.png" />
add-phone-to-text.php
<?php
require_once __DIR__ . '/vendor/phpqrcode/qrlib.php';
$target = "uploads/qr-code-phone/";
$phone="(091)700-001-710";
// Attach the phone to text
$qrContent="sms:" . $phone;
// generating
QRcode::png($qrContent, $target. 'phone-to-text.png', QR_ECLEVEL_L, 3);
?>
<img src=" echo $target; ?>phone-to-text.png" />
Việc đính kèm email sẽ thêm chủ đề và nội dung thư như một phần của dữ liệu người nhận thư. Nhưng đối tượng và các thông số cơ thể là tùy chọn.
add-recipient-to-send-mail.php
<?php
require_once __DIR__ . '/vendor/phpqrcode/qrlib.php';
$target = "uploads/qr-code-phone/";
$recipient="TVT@example.com";
$mailSubject="Enquiry";
$mailBody = 'Post enquiry content';
// Prepare QR content with email recipient, subject and body
$qrContent="mailto:" . $recipient . '?subject=" . urlencode($mailSubject) . "&body=' . urlencode($mailBody);
// Attach maileto link to the QRCode
QRcode::png($qrContent, $target. 'mail.png', QR_ECLEVEL_L, 3);
?>
<img src=" echo $target; ?>mail.png" />
Ví dụ về mã QR này tạo thẻ v để gói cùng với mã QR. Nó bao gồm các chi tiết cơ bản với thẻ v.
Thư viện này cho phép thêm nhiều chi tiết hơn vào mã QR. Ví dụ: nó có thể đính kèm hình đại diện liên hệ với mã QR.
Trong bài viết trước, chúng ta đã biết cách tạo và tải xuống thẻ v-card để biết thông tin liên hệ.
lưu-vcard-to-qr-code.php
<?php
require_once __DIR__ . '/vendor/phpqrcode/qrlib.php';
$target = "uploads/qr-code-phone/";
// Contact details
$name="Example1";
$phone="(091)700-001-711";
// QR code content with VACARD
$qrCode="BEGIN:VCARD" . "\n";
$qrCode .= 'FN:' . $name . "\n";
$qrCode .= 'TEL;WORK;VOICE:' . $phone . "\n";
$qrCode .= 'END:VCARD';
// Attaching VCARD to QR code
QRcode::png($qrCode, $target. 'vcard-qr-code.png', QR_ECLEVEL_L, 3);
?>
<img src=" echo $target; ?>vcard-qr-code.png" />
Tải xuống
Xem thêm tin mới và bổ ích tại:
– Kiến thức gia đình
– Tri thức đời sống
– Kênh youtube Kiến thức gia đình