Hướng dẫn tạo mã qr code bằng PHP

04/05/2020 - lượt xem
Chia sẻ
 
Rate this post

Bạ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.

Cách các tạo mã QR Code

Sử dụng QR code google

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" />
Mã Qr Code Google sinh ra theo link bên trên
Mã Qr Code Google sinh ra theo link bên trên

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

Sử dụng thư việc bên thứ 3 khác

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

Tạo Demo QR Code với endroid/qr-code PHP

Khởi tạo Composer

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

Hướng dẫn mở PowerShell
Hướng dẫn mở PowerShell

 

Tải thư viện thông qua composer

//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

Require thư viện endroid/qr-code

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

Sử dụng composer để require thư viện
Sử dụng composer để require thư viện

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.

Gõ lệnh PHP tạo Qrcode

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é

Hướng dẫn tạo Mã QR trong PHP
Hướng dẫn tạo Mã QR trong PHP

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é.

 

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về PHP cơ bản

    Xem thêm