PHP QR Code adalah library open source yang memungkinkan developer untuk menghasilkan kode QR secara dinamis menggunakan PHP. Library ini ringan, mudah diimplementasikan, dan tidak memerlukan dependensi eksternal seperti GD Library (meskipun dapat memanfaatkannya jika tersedia).
QR Code (Quick Response Code) adalah sistem barcode matrix dua dimensi yang dapat menyimpan berbagai jenis informasi seperti URL, teks, nomor telepon, atau data lainnya. Dengan PHP QR Code, Anda dapat mengintegrasikan generasi QR Code langsung ke dalam aplikasi web Anda.
Pertama, download library PHP QR Code dari sumber resminya:
https://sourceforge.net/projects/phpqrcode/
Setelah mengekstrak, Anda akan mendapatkan struktur file seperti ini:
phpqrcode/
├── qrlib.php
├── qrconfig.php
├── qrtools.php
├── index.html
└── ... file lainnya
Pindahkan folder phpqrcode ke direktori project Anda dan include file utama:
<?php
// Include library QR Code
include_once 'phpqrcode/qrlib.php';
?>
Berikut adalah contoh dasar membuat QR Code dan menyimpannya sebagai file gambar:
<?php
// Include library
include_once 'phpqrcode/qrlib.php';
// Konten yang akan diencode ke QR Code
$content = "https://iscatur.my.id";
// Nama file output
$filename = "qrcode.png";
// Generate QR Code
QRcode::png($content, $filename);
echo "QR Code berhasil dibuat: <img src='$filename'>";
?>
Fungsi QRcode::png() menerima beberapa parameter:
| Parameter | Deskripsi | Default |
|---|---|---|
$text |
Konten yang akan diencode | Wajib |
$outfile |
Nama file output (false untuk output langsung) | false |
$level |
Level koreksi error (L, M, Q, H) | L |
$size |
Ukuran QR Code (1-10) | 3 |
$margin |
Margin dalam pixel | 4 |
PHP QR Code mendukung 4 level koreksi error:
<?php
// QR Code dengan level koreksi error High
QRcode::png('https://iscatur.my.id', 'qrcode_h.png', 'H');
// QR Code dengan level koreksi error Medium
QRcode::png('https://iscatur.my.id', 'qrcode_m.png', 'M');
?>
<?php
// QR Code dengan ukuran besar dan margin kecil
QRcode::png('Data untuk QR Code', 'qrcode_custom.png', 'Q', 8, 2);
// Parameter: content, filename, errorlevel, size, margin
?>
Anda dapat mengoutput QR Code langsung ke browser tanpa menyimpan file:
<?php
// Output langsung ke browser
header('Content-Type: image/png');
QRcode::png('https://iscatur.my.id');
?>
Berikut contoh menambahkan logo di tengah QR Code:
<?php
// Generate QR Code terlebih dahulu
QRcode::png('https://iscatur.my.id', 'temp_qr.png', 'H', 10, 2);
// Load QR Code dan logo
$qr = imagecreatefrompng('temp_qr.png');
$logo = imagecreatefrompng('logo.png');
// Ukuran logo (max 30% dari QR Code)
$qr_width = imagesx($qr);
$logo_size = $qr_width * 0.3;
// Posisi logo di tengah
$logo_x = ($qr_width - $logo_size) / 2;
$logo_y = ($qr_width - $logo_size) / 2;
// Copy logo ke QR Code
imagecopyresampled($qr, $logo, $logo_x, $logo_y, 0, 0, $logo_size, $logo_size, imagesx($logo), imagesy($logo));
// Simpan hasil
imagepng($qr, 'qrcode_with_logo.png');
// Hapus file temporary
unlink('temp_qr.png');
echo "QR Code dengan logo berhasil dibuat!";
?>
Berikut adalah contoh implementasi lengkap generator QR Code dengan form input:
<?php
// Generator QR Code Sederhana
if(isset($_POST['generate'])) {
include_once 'phpqrcode/qrlib.php';
$content = $_POST['content'];
$size = isset($_POST['size']) ? $_POST['size'] : 6;
$level = isset($_POST['level']) ? $_POST['level'] : 'L';
// Buat nama file unik
$filename = 'qrcodes/qr_' . time() . '.png';
// Pastikan folder qrcodes ada
if(!is_dir('qrcodes')) {
mkdir('qrcodes', 0755, true);
}
// Generate QR Code
QRcode::png($content, $filename, $level, $size, 2);
echo "<div class='success'>QR Code berhasil dibuat!</div>";
echo "<img src='$filename' alt='QR Code'>";
}
?>
<!DOCTYPE html>
<html>
<head>
<title>QR Code Generator</title>
</head>
<body>
<h1>Generator QR Code</h1>
<form method="post">
<label>Konten:</label>
<input type="text" name="content" required>
<label>Ukuran:</label>
<select name="size">
<option value="4">Kecil</option>
<option value="6" selected>Sedang</option>
<option value="8">Besar</option>
<option value="10">Ekstra Besar</option>
</select>
<label>Level Error Correction:</label>
<select name="level">
<option value="L">Low (7%)</option>
<option value="M">Medium (15%)</option>
<option value="Q">Quartile (25%)</option>
<option value="H">High (30%)</option>
</select>
<button type="submit" name="generate">Buat QR Code</button>
</form>
</body>
</html>
PHP QR Code adalah solusi yang powerful dan mudah untuk mengintegrasikan generasi QR Code ke dalam aplikasi PHP Anda. Dengan library ini, Anda dapat:
Dengan mengikuti panduan ini, Anda sekarang memiliki pengetahuan yang cukup untuk mengimplementasikan QR Code generator dalam project PHP Anda. Selamat mencoba!