Mục lục
ToggleBạn đang mong muốn tạo mã QR Code theo nội dung mình chủ động đưa vào bằng PHP nhưng chưa biết cách bắt đầu như thế nào. Bài viết dưới dây sẽ hướng dẫn chi tiết tạo mã QRcode trong PHP.
QR Code thì quá phổ biến rồi, mình sẽ không giới thiệu nhiều về nó nữa mà sẽ tập trung đi vào nội dung chính luôn.
Google cung cấp hướng dẫn tạo mã QR Code thông qua api của họ như sau:
<img src="https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=https://google.com&choe=UTF-8" title="Link to Google.com" />
Trong đó:
cht = qr chỉ định việc api này tạo ra Qr Code
chs = width x height chỉ kích cỡ của mã QR Code được sinh ra
chl = Nội dung của mã QR, nội dung có thể là link, số điện thoại…
choe = Cách mã hóa dữ liệu trong QR Code
Hướng dẫn chi tiết xem thêm tại https://developers.google.com/chart/infographics/docs/qr_codes
Trong bài viết này sẽ hướng dẫn bạn chi tiết cách tạo mã QR bằng cách sử dụng thư viện endroid/qr-code trong PHP. Tham khảo chi tiết thư viện này tại đây: https://github.com/endroid/qr-code
Ngoài thư viện trên đây có rất nhiều thư viện khác hỗ trợ tạo QRCode bằng PHP, tuy vậy trong khuôn khổ bài viết này sẽ hướng dẫn cách tạo mã QR Code bằng thư viện PHP endroid/qr-code
Các bạn vào trong thư mục dự định chưa code, sau đó mở window command hoặc window power shell lên. Có thể mở window powershell bằng cách giữ shift và ấn chuột phải khi đó sẽ có như hình sau
//Sử dụng lệnh sau để khởi tạo file composer composer init
Package name (<vendor>/<name>) [hp/demo-qrcode]: Gõ tên package tạo ra ví dụ ở đây là hp/demo-qrcode
Description []: Ghi mô tả cho Project này, bạn có thể ghi hoặc không, nếu không ghi chỉ cần enter để sang bước tiếp theo
Author: Ghi theo hướng dẫn Tên <email> hoặc enter để bỏ qua
Minimum Stability []: Có thể điền là dev hoặc ấn enter
Package Type (e.g. library, project, metapackage, composer-plugin) []: Chọn kiểu package
Would you like to define your dependencies (require) interactively [yes]? Project/Package của bạn có sử dụng package nào khác không? phần này gõ no bỏ qua, bên dưới mình sẽ require thư viện vào sau.
Would you like to define your dev dependencies (require-dev) interactively [yes]? Tương tự bên trên
Do you confirm generation [yes]? Enter đẻ xác nhận tạo file composer
Gõ lênh trong màn hình PowerShell:
composer require endroid/qr-code
Để thực hiện require thư viện mình cần
Đợi khoảng 1 vài phút xong sẽ có thông báo như hình
Như vậy đã hoàn thành khởi tạo thư viện cần thiết cho việc tạo mã Qr Code trong PHP.
Các bạn có thể gõ theo đoạn mã dưới đây, mình có giải thích trong từng câu lệnh thì cấu hình lại cho phù hợp với mục đích cùa mình
Do đây chỉ là Demo nên mình gõ thẳng text cứng, các bạn có thể tạo Form nhập liệu và sử lý dữ liệu post lên để tạo ra QR giống như 1 số trang tạo mã QR code online khác
<?php //Load thư viện require_once "vendor/autoload.php"; use Endroid\QrCode\ErrorCorrectionLevel; use Endroid\QrCode\LabelAlignment; use Endroid\QrCode\QrCode; use Endroid\QrCode\Response\QrCodeResponse; //Khởi tạo đối tượng QR Code, tham số truyền vào là nội dung cần tạo mã //Nội dung này có thể là dạng link http:// hay https:// //Nội dung có thể là tel: ,sms: hoặc là đoạn text bất kì $qrCode = new QrCode('Code Tu Tam - Demo QR Code'); //Kích cỡ của mã Qrcode tạo ra, như dưới dây là 300x300 $qrCode->setSize(300); //Set ảnh ra là PNG $qrCode->setWriterByName('png'); //Set mã encoding qrcode là UTF-8 $qrCode->setEncoding('UTF-8'); $qrCode->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH()); //Set màu chữ, màu nét vẽ là màu đen $qrCode->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]); //Set màu nền là màu trắng $qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]); //Set Label hiển thị dưỡi QR COde các tham số bao gồm: Chữ hiển thị, cỡ chữ, font chữ, Vị trí chữ (Trái-Left, phải-right, giữa-center) $qrCode->setLabel('Scan the code', 16, null, LabelAlignment::CENTER()); // Set đường dẫn logo để ghi đè lên QR Code, nếu không set thì bỏ qua lệnh này $qrCode->setLogoPath(__DIR__.'/logo1.png'); // Set Kích thước của Logo $qrCode->setLogoSize(50,50); $qrCode->setValidateResult(false); //Set Round Blocksie và margin để tạo khoảng trắng xung quanh , giúp mã QR dễ đọc hơn $qrCode->setRoundBlockSize(true); $qrCode->setMargin(10); //Ghi ra file tương ứng $qrCode->writeFile(__DIR__.'/qrcode.png');
Và thành quả là đây
Các bạn có thể dùng phần mềm quét mã với Android, hoặc trình chụp ảnh đối với các điện thoại Iphone để đọc mã QR nhé
Bài viết hướng dẫn các bạn tạo mã QR Code một cách đơn giản và dễ dàng với PHP. Nếu thấy bài viết có ích thì hãy like và chia sẻ để ủng hộ bọn mình nhé.
Bình luận: