Google PHP API ile Real Time Analytics Bilgilerini Almak

Merhaba arkadaşlar, Google’ın bize sunmuş olduğu beta olarak kullandığımız PHP API’yi kullanarak real time analytics bilgilerini nasıl alacağımızı öğreneceğiz. Hadi başlayalım. Okumaya devam et “Google PHP API ile Real Time Analytics Bilgilerini Almak”

PHP ile T.C. Kimlik No Doğrulama

Devletin bize verdiği SOAP servisi sayesinde, T.C. Kimlik Numarasının gerçekten doğru olup olmadığını kontrol edebiliyoruz. Bunuda PHP’de aşağıdaki şekilde kullanıyoruz. Burada dikkat edilmesi gereken gönderilen ad ve soyad’ın büyük harflerle yazılmasıdır. Aksi taktirde doğrulama işlemi çalışmamaktadır. Eğer bu TCKimlikNoDogrula metodu nereden çıktı, TCKimlikNoDogrulaResult property’sini nasıl elde ettik derseniz SoapClient ile bağlandığımız yerden aldık bu bilgileri. Yani kafadan oluşturmadık 🙂

$client = new SoapClient("https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL");
try {
    $result = $client->TCKimlikNoDogrula([
        'TCKimlikNo' => '5555555555',
        'Ad' => 'TAYFUN',
        'Soyad' => 'ERBİLEN',
        'DogumYili' => '1993'
    ]);
    if ($result->TCKimlikNoDogrulaResult) {
        echo 'T.C. Kimlik No Doğru';
    } else {
        echo 'T.C. Kimlik No Hatalı';
    }
} catch (Exception $e) {
    echo $e->faultstring;
}

PHP ile Basit MVC ve Routing Sistemi

Aslında bu dersi önce routing sistemini göstermek için hazırladım ancak sonlara doğru controller, view, model vs. derken basit bir mvc mantığını kurunca dedim adını böyle yapalım en iyisi 🙂

Dersin kaynak dosyaları;
https://github.com/tayfunerbilen/prototurk-mvc-routing-ornek

PHP Multi Process Asenkron Dosya Çalıştırma

Şimdi bildiğiniz gibi PHP’de kodların hepsi execute olduktan sonra sayfada gösterilir. Yani hepsi bitmeden işlem sonuçlanmaz. Bazı durumlar vardır ki, bunun böyle olmasını istemezsiniz. Örnek vermek gerekirse, bir e-posta bülten listeniz olsun. Ve bir konu paylaştıktan sonra atıyorum 5000 kişilik listeye e-posta göndereceksiniz.

Eğer bunu postu paylaşır paylaşmaz yaparsanız mailler gönderilene kadar sayfada bir bekleme süresi olacak. Ancak bizim istediğimiz, bunu arkaplan’da çalıştırarak göndermek. Aslında bunun için çok basit bir şey yazacağız. Öncelikle mailleri gönderecek php dosyasını oluşturalım. Örneğin send-email.php olsun.

<?php

sleep(5); // 5 sn sonra çalış

$postId = $argv[1];
// .. mail gönderme işlemleri vs.

?>

Şimdi postu yayınladıktan sonra şu kodu çalıştırmamız yeterli olacak;

exec('php -f send-email.php -- "5" > /dev/null 2>&1 &');

Burada tabi doğru dosya yolunu vermek önemli. Bu şekilde kodumuz çalıştığında send-email.php’deki 5 saniye bekleme kısmı mevcut sayfaya yansımayacaktır. Biz konumuzu oluşturmuş ve beklemeden işlem yapmaya devam ederken arkaplanda mailler gitmeye devam edecektir. Ayrıca dikkat ettiyseniz send-email.php’ye parametre gönderdik exec() komutu içinde. Gelen parametreleri $argv değişkeninde tutuluyor. 0 indexli olan değer dosyanın adı o yüzden 1’den başlayarak kullanın.

Birden fazla parametre göndermek isterseniz;

exec('php -f send-email.php -- "5" "tayfun erbilen" "deneme" > /dev/null 2>&1 &');

şeklinde gönderebilirsiniz. send-email.php’de $argv[1] $argv[2] $argv[3] şeklinde değerlere ulaşabilirsiniz.

Not: exec() fonksiyonu genelde hostinglerde güvenlikten dolayı kapalı oluyor. Bu yüzden kendi sunucunuzu kullanmaya çalışın, zaten hosting nedir allah aşkına? Boşverin onları 🙂

Kolay gelsin.

PHP’de İfadeleri Karşılaştırmak

Bazen yönetim paneline girişleri veritabanı yerine dosyada tutuyorum. Basit bir if-else kontrolü ile giriş yaptırıyorum. Bu gibi durumlarda, kullanıcı adı ve şifre nasıl yazıldıysa aynen o şekilde yazdırmak gerekiyor. Yani büyük küçük harfe vs. duyarlı oluyor. Bu gibi durumlar için PHP’de karşılaştırma fonksiyonları var. Örneğin 2 ifadenin doğruluğunu karşılaştırıyor. Mesela;

$a = 'Tayfun';
$b = 'Tayfun';
echo strcmp($a, $b); // Çıktı: 0

Eğer sonuç 0 ise, ifadeler birbirine eşit demektir. Ancak bu örneği şöyle değiştirseydik;

$a = 'Tayfun';
$b = 'tayfun';
echo strcmp($a, $b); // Çıktı: -32

Bu durumda ifadeler birbiriyle eşleşmiyor çünkü büyük küçük harf problemi devreye giriyor. Bunu çözmek için ise strcasecmp() fonksiyonunu kullanabiliriz. Aynı örneği birde şöyle yapalım;

$a = 'Tayfun';
$b = 'tayfun';
echo strcasecmp($a, $b); // Çıktı: 0

Sonuç başarılı. Yani bu gibi durumlar için strcasecmp() fonksiyonu kullanılabilir.