Selasa, 10 Januari 2017

Membuat dan Menampilkan QR Code secara Dinamis dengan PHP

Salam jagocoding,, kalo biasanya saya selalu berbagi tutorial tentang CSS, kali ini saya ingin berbagi tutorial saya tentang PHP aja.. Iya, PHP aja nggak pake embel-embel yang lain.. Di tutorial kali ini kita akan mencoba membuat, sekaligus menampilkan QR Code. Isi QR Code yang akan kita buat ini terserah sesuai kebutuhan kita.. Bisa diisi nama website kita, alamat fesbuk kita, atau URL website di momen tertentu, dan sebagainya..
Pertama-tama, kita download dulu pluginnya.. Plugin QR Code yang akan kita pakai di tutorial ini saya ambil dari http://sourceforge.net/projects/phpqrcode/files/latest/download?source=files. Tenang aja, plugin ini gratis, tinggal download, terus diextract ke folder project web kita. Hasil ekstrakan kulit manggispluginnya kita biarkan dalam bentuk folder biar tetap rapi. Jadi di folder project saya sekarang isinya adalah folder dengan namaphpqrcode, dan file index.php

Mari kita ke file index.php yang masih kosong ini.. Langkah pertamanya, kita include file library utama plugin tsb.. namanya qrlib.php.. setelah itu kita buat sebuah folder untuk menampung gambar QR Code kita nantinya.
1
2
3
4
5
6
7
8
9
10
<?php
include "phpqrcode/qrlib.php"; //<-- LOKASI FILE UTAMA PLUGINNYA
 
$tempdir = "temp/"; //<-- Nama Folder file QR Code kita nantinya akan disimpan
if (!file_exists($tempdir))#kalau folder belum ada, maka buat.
    mkdir($tempdir);
 
 
 
?>
Cara memakai pluginnya pun nggak begitu susah.. Kita cuma perlu tau parameter inputan apa aja yang harus kita isi.. Parameter pertamanya yaitu teks apa yang ingin kita inputkan ke QR Code tersebut. Parameter kedua isinya file gambar QR Code nanti akan disimpan dimana? parameter ketiga kita menentukan kualitas QR Codenya, parameter keempat isinya besaran ukuran QR Code, dan terakhir besaran paddingnya.
Jadi dari parameter-parameter tersebut, cara membuatnya jadi seperti ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
...
//lanjutan yang tadi
 
#parameter inputan
$isi_teks = "Belajar QR Code itu asik";
$namafile = "coba.png";
$quality = 'H'; //ada 4 pilihan, L (Low), M(Medium), Q(Good), H(High)
$ukuran = 5; //batasan 1 paling kecil, 10 paling besar
$padding = 0;
 
QRCode::png($isi_teks,$tempdir.$namafile,$quality,$ukuran,$padding);
 
 
 
?>
Cuma segitu aja? Iya.. cuma segitu aja.. Kalau step by stepnya diikuti dengan tepat, hasilnya bisa kita liat langsung di direktori $tempdir kita tadi.. Hasil QR Code dari coding diatas tadi itu seperti ini nih..
QR Code

Simpel kan ya? Penerapan QR Code yang paling umum biasanya untuk mengshare URL website tertentu atau website yang saat itu sedang dikunjungi. Caranya tetap sama, hanya saja kita perlu inputan URL lengkap untuk dishare.. Mungkin sedikit snippet fungsi ini bisa membantu,,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
...
function get_current_url($s, $use_forwarded_host=false)
{
    $ssl = (!empty($s['HTTPS']) && $s['HTTPS'] == 'on') ? true:false;
    $sp = strtolower($s['SERVER_PROTOCOL']);
    $protocol = substr($sp, 0, strpos($sp, '/')) . (($ssl) ? 's' : '');
    $port = $s['SERVER_PORT'];
    $port = ((!$ssl && $port=='80') || ($ssl && $port=='443')) ? '' : ':'.$port;
    $host = ($use_forwarded_host && isset($s['HTTP_X_FORWARDED_HOST'])) ? $s['HTTP_X_FORWARDED_HOST'] : (isset($s['HTTP_HOST']) ? $s['HTTP_HOST'] : null);
    $host = isset($host) ? $host : $s['SERVER_NAME'] . $port;
    return $protocol . '://' . $host . $s['REQUEST_URI'];
}
 
?>
Itu adalah fungsi untuk mendapatkan URL yang sedang dikunjungi.. Jika fungsi get_current_url itu kita gabungkan dengan fungsi pembuatan QR Code tadi seperti ini , 
1
2
3
4
5
6
7
8
9
10
<?php
....
 
$isi_teks = get_current_url($_SERVER); //inputan fungsi tadi itu cuma $_SERVER aja
$namafile = "url_saat_ini.png";
$quality = 'H';
$ukuran = 4;
$padding = 2;
 
QRCode::png($isi_teks,$tempdir.$namafile,$quality,$ukuran,$padding);
setelah itu QR Code ditampilkan dengan tag <img> seperti biasa,, 
1
<img src="temp/url_saat_ini.png">
Taraaa,, jadilah QR Code dinamis yang akan terus berubah-ubah sesuai alamat yang sedang kita kunjungi.. 
Hasil QR Code Dinamis

Sekian tutorial saya kali ini,, semoga berguna buat kita semua deh.. Seperti biasa, link demo dan download sudah saya sediakan untuk keperluan belajar bersama.. Sampai ketemu di tutorial selanjutnya~