PHP Dersleri

PHP ile Google Chart API Kullanarak QR Kod Oluşturma

QR Kodu, beyaz bir zemin üzerinde siyah karelerden oluşan, makineler tarafından kolaylıkla okunabilen bir koddur. QR kodu, cihazların kamerası tarafından okunarak bilgi akışını sağlamaktadır. QR kod, bilgi saklama ve URL gibi dertler olmadan iletişimi sağlamak için kullanılmaktadır. Tamamiyle dijitalleşmenin bir ürüdünür.

QR kodu üretmek için Google Chart API’sini kullanabilirsiniz. Herhangi bir kütüphane yada eklenti kullanmadan Google üzerinden bu işlemi kolaylıkla sağlayabilirsiniz. Google Chart API ile URL, metin, telefon, sms iletişim bilgisi ve diğer içerikler için dinamik olarak QR kodu oluşturabilirsiniz.

Google QR Kütüphanesi

Google Chart API kullanarak QR kodu oluşturmak için bir kütüphane oluşturmak gerekecektir. Bu kütüphaneyle birlikte URL, metin, telefon, sms, iletişim bilgisi ve diğer seçenekler için dinamik bir şekilde QR kodu oluşturulacaktır.

class GoogleQR{
    private $googleChartAPI = 'http://chart.apis.google.com/chart';
    private $codeData;
    public function url($url = null){
        $this->codeData = preg_match("#^https?\:\/\/#", $url) ? $url : "http://{$url}";
    }
    public function text($text){
        $this->codeData = $text;
    }
    public function email($email = null, $subject = null, $message = null) {
        $this->codeData = "MATMSG:TO:{$email};SUB:{$subject};BODY:{$message};;";
    }
    public function phone($phone){
        $this->codeData = "TEL:{$phone}";
    }
    public function sms($phone = null, $msg = null) {
        $this->codeData = "SMSTO:{$phone}:{$msg}";
    }
    public function contact($name = null, $address = null, $phone = null, $email = null) {
        $this->codeData = "MECARD:N:{$name};ADR:{$address};TEL:{$phone};EMAIL:{$email};;";
    }
    public function content($type = null, $size = null, $content = null) {
        $this->codeData = "CNTS:TYPE:{$type};LNG:{$size};BODY:{$content};;";
    }
    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;
    }
}
?>

QR kod oluşturmak için yukarıdaki kodları googleQr.php olarak kayıt edebilirsiniz. QR kodu oluşturmak istediğiniz sayfalara dahil ederek, QR kodunuzu kolaylıkla oluşturabilirsiniz.

Metin İçerikli QR Oluşturma

Metin içerikli QR kodu oluşturmak için oluşturmuş olduğumuz kütüphanedeki text() metodunu kullanmak gerekecektir. Bu metotla birlikte metinleri QR olarak saklayabilirsiniz.

include_once "googleQr.php";
$qr = new GoogleQR(); 
$qr->text('ibrahim Çevrük');
$qr->qrCode();

Kütüphaneyi dahil ettikten sonra sınıfı çağırıp text() metodunu kullanıyoruz. Text metoduna metin değerini yazdıktan sonra çıktı almak için qrCode() sınıfını çalıştırarak QR kodu hazırlamış oluyoruz.

URL’den QR Oluşturma

URL içerikli QR kodu oluşturmak için oluşturmuş olduğumuz kütüphanedeki url() metodunu kullanmak gerekecektir. Bu metotla birlikte URL’i QR olarak saklayabilirsiniz.

include_once "googleQr.php";
$qr = new GoogleQR(); 
$qr->url('https://www.ibrahimcevruk.com');
$qr->qrCode();

Kütüphaneyi dahil ettikten sonra sınıfı çağırıp url() metodunu kullanıyoruz. URL metoduna URL değerini yazdıktan sonra çıktı almak için qrCode() sınıfını çalıştırarak QR kodu hazırlamış oluyoruz.

E-POSTA İçin QR Oluşturma

E-posta içerikli QR kodu oluşturmak için oluşturmuş olduğumuz kütüphanedeki email() metodunu kullanmak gerekecektir.

include_once "googleQr.php";
$qr = new GoogleQR(); 
$qr->email('ibrahimcevruk@hotmail.com', 'Teşekkür', 'Merhaba, bu ders için teşekkür etmek istedim.');
$qr->qrCode();

Kütüphaneyi dahil ettikten sonra sınıfı çağırıp email() metodunu kullanıyoruz. Email metoduna mail bilgilerini yazdıktan sonra çıktı almak için qrCode() sınıfını çalıştırarak QR kodu hazırlamış oluyoruz.

SMS İçin QR Oluşturma

E-posta içerikli QR kodu oluşturmak için oluşturmuş olduğumuz kütüphanedeki email() metodunu kullanmak gerekecektir.

include_once "googleQr.php";
$qr = new GoogleQR(); 
$qr->sms('5076644810', 'Merhaba');
$qr->qrCode();

Kütüphaneyi dahil ettikten sonra sınıfı çağırıp sms() metodunu kullanıyoruz. Sms metoduna telefon ve mesaj bilgilerini yazdıktan sonra çıktı almak için qrCode() sınıfını çalıştırarak QR kodu hazırlamış oluyoruz.

İLETİŞİM İçin QR Oluşturma

E-posta içerikli QR kodu oluşturmak için oluşturmuş olduğumuz kütüphanedeki email() metodunu kullanmak gerekecektir.

include_once "googleQr.php";
$qr = new GoogleQR(); 
$qr->contact('ibrahim Çevrük', 'Ankara', '5076644810', 'ibrahimcevruk@hotmail.com');
$qr->qrCode();

Kütüphaneyi dahil ettikten sonra sınıfı çağırıp contact() metodunu kullanıyoruz. Contact metoduna isim, adres, telefon ve mail bilgilerini yazdıktan sonra çıktı almak için qrCode() sınıfını çalıştırarak QR kodu hazırlamış oluyoruz.

QR Kodu Kaydetme

Üretilen QR kodları sadece tarayıcı tarafından görüntülenen yani sonuç veren bir uygulama olacaktır. Eğer üretilen QR kodunu indirmek isterseniz aşağıdaki kodu ekleyebilirsiniz.

$qr->qrCode(350,'cw-qr.png');

Bu kullanımla birlikte üretilen QR kodun indirilmesini sağlayabilirsiniz. İndirme işleminde dizin belirtip depolama yapabilirsiniz.

Daha Fazla Göster

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Kapalı