Cara menghasilkan QR Code dengan PHP menggunakan Google Chart API

0
Cara menghasilkan QR Code-dengan-PHP menggunakan Google Chart API

QR Code adalah kode yang dapat dibaca mesin yang terdiri dari kotak hitam dengan latar belakang putih. QR code biasanya digunakan untuk menyimpan informasi yang dapat dibaca oleh kamera. Terkadang kamu diharuskan untuk menghasilkan QR code yang dinamis untuk produk, member, atau barang-barang lain dalam aplikasi kamu. Kamu akan menemukan banyak QR code generator library untuk menciptakan QR code. Tapi Google Chart API menyediakan cara yang mudah untuk menghasilkan kode QR di PHP tanpa library atau Plugin.

Dalam tutorial ini, saya akan menunjukkan bagaimana kamu bisa menghasilkan QR code dengan PHP menggunakan Google Chart API dan cURL. PHP QR Script code generator ini memungkinkan kamu untuk menghasilkan QR code dinamis untuk URL, teks, email, telepon, SMS, informasi kontak, dan konten lainnya.

Saya telah membuat class PHP QR code generator yang disebut QR_BarCode, yang membantu untuk menghasilkan QR code gambar (PNG) atau menyimpan QR code gambar sebagai file PNG.

<?php
/**
 * QR_BarCode - Generator Barcode QR Code Gambar
 * @author Codingan
 * @url http://codingan.com
 * @license https://creativecommons.org/licenses/by-nc-nd/4.0/
 */
class QR_BarCode{
    // Google Chart API URL
    private $googleChartAPI = 'http://chart.apis.google.com/chart';
    
    // Code data
    private $codeData;
    
    /**
     * QR code URL
     * @param string $url
     */
    public function url($url = null){
        $this->codeData = preg_match("#^https?\:\/\/#", $url) ? $url : "http://{$url}";
    }
    
    /**
     * QR code teks biasa
     * @param string $text
     */
    public function text($text){
        $this->codeData = $text;
    }
    
    /**
     * QR code alamat Email
     *
     * @param string $email
     * @param string $subject
     * @param string $message
     */
    public function email($email = null, $subject = null, $message = null) {
        $this->codeData = "MATMSG:TO:{$email};SUB:{$subject};BODY:{$message};;";
    }
    
    /**
     * QR code telephon
     * @param string $phone
     */
    public function phone($phone){
        $this->codeData = "TEL:{$phone}";
    }
    
    /**
     * QR code SMS
     *
     * @param string $phone
     * @param string $text
     */
    public function sms($phone = null, $msg = null) {
        $this->codeData = "SMSTO:{$phone}:{$msg}";
    }
    
    /**
     * QR code VCARD
     *
     * @param string $name
     * @param string $address
     * @param string $phone
     * @param string $email
     */
    public function contact($name = null, $address = null, $phone = null, $email = null) {
        $this->codeData = "MECARD:N:{$name};ADR:{$address};TEL:{$phone};EMAIL:{$email};;";
    }
    
    /**
     * QR code (gif, jpg, png, etc.)
     *
     * @param string $type
     * @param string $size
     * @param string $content
     */
    public function content($type = null, $size = null, $content = null) {
        $this->codeData = "CNTS:TYPE:{$type};LNG:{$size};BODY:{$content};;";
    }
    
    /**
     * Menghasilkan QR code gambar
     *
     * @param int $size
     * @param string $filename
     * @return bool
     */
    public function qrCode($size = 200, $filename = null) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->googleChartAPI);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, "chs={$size}x{$size}&cht=qr&chl=" . urlencode($this->codeData));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        $img = curl_exec($ch);
        curl_close($ch);
    
        if($img) {
            if($filename) {
                if(!preg_match("#\.png$#i", $filename)) {
                    $filename .= ".png";
                }
                
                return file_put_contents($filename, $img);
            } else {
                header("Content-type: image/png");
                print $img;
                return true;
            }
        }

        return false;
    }
    
}
?>

Untuk membuat gambar QR code PNG, gunakan class QR_BarCode seperti berikut ini.

<?php
// memasukkan class QRcode 
include "QR_BarCode.php"; 

// objek QRcode 
$qr = new QR_BarCode(); 

// membuat QR code teks yang berisikan "Codingan.com"
$qr->text("Codingan.com"); 

// me-render QR code
$qr->qrCode();

Contoh kode di atas akan menghasilkan dan menampilkan QR code.

Kalau kamu ingin menyimpan gambar QR code, gunakan class QR_BarCode seperti berikut ini:

// menyimpan gambar QR code dengan nama barcode.png
$qr->qrCode(350,'barcode.png');

Class QR_BarCode menghasilkan jenis QR code yang berbeda di PHP.

<?php // membuat QR code URL $qr->url('URL');

// membuat QR code teks biasa
$qr->text('textContent');

// membuat QR code email 
$qr->email('emailAddress', 'subject', 'message');

// membuat QR code telephon 
$qr->phone('phoneNumber');

// membuat QR code SMS 
$qr->sms('phoneNumber', 'message');

// membuat QR code daftar kontak 
$qr->contact('name', 'address', 'phone', 'email');

// membuat QR code konten 
$qr->content('type', 'size', 'content');

Kesimpulan

Class QR_BarCode membuat QR code lebih cepat dan lebih mudah. Hanya satu file (QR_BarCode.php) yang harus dicantumkan untuk menghasilkan berbagai jenis QR code. cURL juga digunakan dalam class QR_BarCode, pastikan cURL diaktifkan di konfigurasi PHP kamu dalam file (php.ini).

BAGIKAN
Subscribe
Beritahu
guest
0 Comments
Inline Feedbacks
View all comments