Posts

PHP ve Json

phpjsonPHP ve Json ikilisi arasındaki ilişkiyi ve Json’un PHP’de kullanımını anlatmak için öncelikle Json nedir onun üzerinde duralım.

Programlamada farklı platformlar arasında veri alışverişi ihtiyacı vardır. Mesela bir sosyal platformdan son paylaşımları çekip kendi projenizde kullanmak isteyebilirsiniz. Bu tür işlemler için platformlar arasında bir paylaşım olması lazımdır. Bu paylaşım için bazı teknolojiler geliştirilmiştir. Mesela bunlardan birisi XML teknolojisidir. Fakat XML, Javascript ile beraber iyi kullanılamamaktadır. İşte burada Json, Javascript ile uyumlu olduğundan çok tercih edilmektedir.

Json içerisindeki veriler her programlamada bulunan dizi ve obje şeklindedir.

Object

“{“ ile başlar ve “}” ile biter. İçerisine veriler “Anahtar” ve “Veri” şeklinde yazılır. Örnek;

{
 "name": "Erhan",
 "surname": "Kılıç"
}

Dizi

“[“ ile başlar ve “]” ile biter. İçerisindeki veriler sadece “Veri” şeklinde yazılır. Örnek;

[
 "Erhan", "Kılıç"
]

Json içerisinde ikisi bir arada istenildiği gibi kullanılabilir. Örnek;

{
 "tip": "kitap",
 "tur": "roman",
 "urunler": [
 {"ad": "Ihtiyar Kemanci", "yazar": "Nihat Genc"},
 {"ad": "Su Cilgin Turkler", "yazar": "Turgut Ozakman"},
 {"ad": "Kar", "yazar": "Orhan Pamuk"}
 ]
}

Json’un tercih edilmesinin en önemli sebebi Javascript’deki obje ve dizi yapısının tamamen aynı olmasıdır. Örnek olarak Javascript‘te de yapmaya çabaladığımızda siz de farkedeceksiniz.

PHP’de Json Fonksiyonları

Php’de Json ile ilgili işlemler şu şekilde yapılabilir. Kendi sitemizde Javascript ya da jQuery, AngularJs gibi kütüphanelerinde kullanmak için, başka platformlarla veri paylaşımında bulunup api oluşturmak için verileri Json formatında ekrana yazdırabiliriz. Başka bir yerden Json ile çektiğimiz veriyi php uygulamamızda kullanmak için kullanabiliriz.

Dikkat etmemiz gereken şey şudur. Eğer aşağıdaki fonksiyonları kullanmazsak bir string değer gibi algılayacağından içerideki verilere erişmek hayli zahmetli olacaktır.

json_encode()

Bu fonksiyon istediğimiz veriyi Json olarak yazdırmamızı sağlar. Örnek Kullanım;

$dizi = array(
 "tip"=> "kitap",
 "tur"=> "roman",
 "urunler"=> array(
 array("ad"=> "Ihtiyar Kemanci", "yazar"=> "Nihat Genc"),
 array("ad"=> "Su Cilgin Turkler", "yazar"=> "Turgut Ozakman"),
 array("ad"=> "Kar", "yazar"=> "Orhan Pamuk")
 )
);
$json = json_encode($dizi);
echo $json;

json_decode()

Bu fonksiyon ise bir yerden çektiğimiz Json veriyi decode ederek php yazılımımız içerisinde kullanmamızı sağlar. İçerideki verilere ise objedeki bir veriye ulaşır gibi ulaşabiliriz. Aşağıdaki örnekte Json veriyi bir string veri olarak oluşturuyorum. Çünkü dışarıdan Json veri çektiğimizde string bir veri olarak gelecektir aynı şekilde. Örnek;

$json ='{
 "tip": "kitap",
 "tur": "roman",
 "urunler": [
 {"ad": "Ihtiyar Kemanci", "yazar": "Nihat Genc"},
 {"ad": "Su Cilgin Turkler", "yazar": "Turgut Ozakman"},
 {"ad": "Kar", "yazar": "Orhan Pamuk"}
 ]
}';
$veri = json_decode($json);
echo $veri->tip;
echo $veri->tur;
foreach($veri->urunler as $urun){
 echo vardumb($urun);
 echo "<br/>";
}

Fonksiyon içerisinde ikinci bir parametre olarak true eklersek obje olarak değil direk dizi olarak kaydecektir ve erişimimiz de bu şekilde değişecektir. Örnek;

$json ='{
 "tip": "kitap",
 "tur": "roman",
 "urunler": [
 {"ad": "Ihtiyar Kemanci", "yazar": "Nihat Genc"},
 {"ad": "Su Cilgin Turkler", "yazar": "Turgut Ozakman"},
 {"ad": "Kar", "yazar": "Orhan Pamuk"}
 ]
}';
$veri = json_decode($json, true);
echo $veri[tip];
echo $veri[tur];
foreach($veri[urunler] as $urun){
 echo vardumb($urun);
 echo "<br/>";
}

Php Ders 3 – Veri Tipleri

Php’de, diğer dillerde de olduğu gibi, verinin farklı türleri vardır. Bu veri türlerinin değişik kullanım alanları vardır.

  • Integer: “Tüm Numaralar”
  • Float: “4.2 gibi sayılar”
  • String: “Metinler”
  • Array: “Diziler birden fazla data tiplerini bulundurabilir.”
  • Boolean: “İkili değer sistemidir. True, False gibi.”
  • Constant: “Değiştirilemez sabitlerdir.”
  • Objeler: “OOP sisteminin objeleridir.”

Integer

Sayılardır. Bu verilerle matematiksel işlemler yapılabilir.

<?php
$degisken1 = 5;
$degisken2 = 10;
echo $toplam = $degisken1 + $degisken2;
?>

String

Metinlerdir. Yazı olarak her şey kullanılabilir. İçerisindeki sayılarla matematiksel işlemler yapılamaz. Bu veride toplama işlemi yaparsak yan yana koyma işlemi yapacaktır. Mesela 1+1 yaparsak sonucu 11 olacaktır. String veri içerisinde html kodları yazabiliriz. Bunu html kodlarını yazdırmak için de kullanabiliriz.

<?php
$string = "<p>Merhaba Dünya</p>";
echo $string;
?>

Float

Bu veri tipi ise ondalıklı sayılardır.

<?php
$float = 1.5;
?>

Boolean (Bool)

Sadece yanlış (false) ya da doğru (true) değerleri alabilen veri tipidir. 1 doğru, 0 yanlış, boş yanlış ve verinin içeriği boşluk karakteri bile olsa dolu ise doğru tanımı almaktadır Php’de. Mesela isset() fonksiyonu içine konulan şeyin var olup olmadığını kontrol ederken empty() fonksiyonu ise içinde veri var mı yok mu diye kontrol eder.

<?php
$booltrue = TRUE;
$booltrue2 = 1;
$booltrue3 = "Merhaba Dünya";
$boolfalse = False;
$boolfalse2 = 0;
$boolfalse3 = "";

Constants

Bu veriler değiştirilemez sabitlerdir. Bir defa tanımını yaparsınız ve bir daha o tanımdan başkasına değiştirilemez. İsimleri büyük harf olmak zorundadır.

<?php
define("ISIM", "Erhan");
echo ISIM;
?>

Array

Diziler içerisinde birden fazla veri taşıyabilen bir veri türüdür. İçerisinde istediğimiz sayıda veri koyabiliriz. Değişik tanımlamaları vardır.

<?php
$array = array("Erhan", "Kılıç", 1987, false);

Bir diğer eleman tanımlama yöntemi ise aşağıdaki gibidir. Bu yöntemde en son sıraya veri eklemektedir.

$array[] = "Nasılsınız";

Dizinin içindeki verilere ise anahtarları ile ulaşabiliriz. Dizilerde verilerin yerini temsil eden anahtarlar 0’dan başlar. Mesela ilk dizimizdeki ilk veriye ulaşmak için aşağıdaki gibi hareket ederiz;

<?php
echo $array[0];

Associative Array

Bu dizide ise anahtarları kendimiz belirliyoruz.

<?php
$array = array(
"isim" => "Erhan",
"soyad" => "Kılıç",
"yas" => 28
);
 
echo "İsim: " . $array["isim"] . "<br/>Soyad: " . $array["soyad"];

Sonraki Ders: Php Ders 4 – Operatörler