Kişisel web tasarım ve kodlama blogu. Web tasarımı ve kodlama araçları ile ilgili bilgiler ve yardımcı dökümanlar.

Kod yazmak sanattır...

gokhankr.com

Blogger tarafından desteklenmektedir.

PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

PHP ile JSON olarak $_REQUEST(POST ve GET gibi) alma işlemi


JSON veri almanın en pratik ve hızlı yoludur. PHP, JSON nesnesi için encode ve decode özelliği sunar. Ancak veriyi application-json olarak doğrudan alma işlemi yapamazsınız. 

Bu yüzden $_GET ve $_POST üzerinden JSON standardı ile bir veri alımı yapamazsınız. Veriyi almak için PHP'nin I/O için sağlamış olduğu girişi kullanacağız.


file_get_contents('php://input')

Şimdi bunu biraz daha genişletelim ve gelen verinin JSON olduğunu varsayalım.


json_decode(file_get_contents('php://input'), true);

Yukarıdaki işlem bize JSON verisi geldiğinde veriyi alıp PHP Array'a çevirecek ve eğer gelen veri JSON olarak gelmezse de null olarak dönecek. Böylece bu işlemi artık bir Router üzerinde deneyebiliriz.


function getJSON()
{
    $jsonData = json_decode(file_get_contents('php://input'), true);
    return $jsonData ?? [];
}

Şimdi $_POST ve $_GET üzerinden veriyi aldığımız gibi getJSON() üzerinden de alma işlemini JSON olarak gerçekleştirebilirsiniz.

Eğer isterseniz veriyi $_POST veya $_GET üzerinden aldığımız gibi global olarak tanımlayıp kullanabiliriz de. Bunun için:


// index.php
$jsonData = json_decode(file_get_contents('php://input'), true);
$GLOBALS['_JSON'] = $jsonData;

//user.php
if (isset($_JSON['kullaniciGirisi'])) {
    /* ... */
}

Bu şekilde istek atılan sayfanızda $_GLOBALS tanımlayarak istediğiniz herhangi bir sayfada $_POST gibi de kullanabilirsiniz. "PHP ile JSON istek alma işlemi" ile ilgili detaylı anlatacaklarım bu kadardı. Teşekkürler.

PHP ile Site Adresini ve Dosya Dizinini Yazdırmak


 


PHP ile çalıştığınız URL'i ve dosya dizin yolunu almak için $_SERVER global değişkeninden yararlanmanız gerekir.

Bir çok değeri bünyesinde barındıran bu değişkende site adresi "HTTP_HOST" üzerinde barınır.

echo $_SERVER['HTTPS'] ?? 'http' . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

Yukardaki kodun çıktısı aşağıdaki şekilde görünecektir.

http://siteadresi.com/calisma-dizini/
$_SERVER["HTTPS"] değeri eğeri eğer var ise tanımlı olacaktır, yok ise hata vereceği için nullsafe operatörü ile kontrol ettirip olmadığında yerine "http" yazdırıyoruz.

PHP ile zaman aşımını görüntüleme



Bugün web sayfalarında Facebook gönderilerinde olduğu gibi paylaşılan içeriğin zaman aşımını görüntüleyen bir kodu sizlerle paylaşmak istedim.

1. Fonksiyon kodu


// Zaman aşımı fonksiyonu
function time_since($since) {
$chunks = array(
array(60 * 60 * 24 * 365 , 'yıl'),
array(60 * 60 * 24 * 30 , 'ay'),
array(60 * 60 * 24 * 7, 'hafta'),
array(60 * 60 * 24 , 'gün'),
array(60 * 60 , 'saat'),
array(60 , 'dakika'),
array(1 , 'saniye')
);

for ($i = 0, $j = count($chunks); $i < $j; $i++) {
$seconds = $chunks[$i][0];
$name = $chunks[$i][1];
if (($count = floor($since / $seconds)) != 0) {
break;
}
}

$print = ($count == 1) ? '1 '.$name : "$count {$name}";
return $print;
}


2. Kullanımı

Oldukça basit bir şekilde şimdiki zamandan gönderi/paylaşım zamanını çıkarıp time_since() içerisine yuvarlıyoruz.


//Kullanımı
echo time_since(strtotime("now")-$veri['soru_zaman']);