PHP ile JSON Kullanımı
Merhaba,
Bu yazımda JSON dan bahsedeceÄŸim. JSON, Douglas Crockford tarafından hazırlanmış bir veri iletimi formatı. XML nin JavaScript ile kullanımının pratik olmayışından dolayı hazırlanmış. Ama ben bu yazıda JSON‘un javascript‘ten ziyade PHP ile kullanımından bahsedeceÄŸim. Pek çok sitenin API‘leri JSON formatını kullanıyor. ÖrneÄŸin Google. İleriki günlerde Google API lerinin kullanımından bahsedeceÄŸim için önce JSON‘a deÄŸinsem daha iyi olur diye düşündüm.
Genel Yapı
{
“Ad”: “Huseyin”,
“Soyad”: “KELES”,
“Adres”: {
“Ulke”: “Turkiye”,
“Sehir”: “Hatay”
},
“Telefon”: [
"111 222-3333",
"444 555-6666"
]
}
PHP için JSON Fonksiyonları
json_decode
Girilen PHP değişkeninin JSON değerini döndürür. PHP 5.2.1 versiyonunda eklenmiştir.
json_decode örneği
<?php $json = '{ "a":1, "b":2, "c":3, "d":4, "e":5 }'; var_dump(json_decode($json)); ?>
Yukarıdaki kodu çalıştırdığımızda çıktısı şu şekilde olacaktır;
object(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) }
json_encode
Girilen JSON kaynağını PHP değişkenine döndürür. Bu fonksiyon da PHP 5.2.1 versiyonunda eklenmiştir.
json_encode örneği
<?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); ?>
Yukarıdaki kodu çalıştırdığımızda çıktısı şu şekilde olacaktır;
{"a":1,"b":2,"c":3,"d":4,"e":5}
İleriki günlerde Google ve diÄŸer çeÅŸitli sitelerin API’lerinin kullanımına yer vereceÄŸiz. O yüzden JSON’u iyi bir ÅŸekilde kavramamız gerekecek.
Benzer Yazılar (bunları bilgisayar seçiyor);
- jQuery ile JSON Kullanımı
Merhaba. Günümüzde artık pek çok site API desteği veriyor ve çoğu web sitesi API'den dönen sonucu ... - PHP ile Google Ajax Search API Kullanımı
Merhaba, Size daha eski yazılarımda JSON'dan bahsetmiÅŸtim ve genelde sitelerin API'lerinde kullanıldığÄ... - PHP ile Google a Ping Atma
Bu yazımızda Google a nasıl ping atacağımızı öğreneceğiz, bu fonksiyonu ben de sitemap oluşturdukta...
Türkçe kaynak bakımından kıtlık çekilen bir konuya değinmişsiniz veyada ben bulamadım. Neyse efendim ben soruma geleyim youtube dan videoları göstermeye yarayan kendimce bir kod yazmaya çalışıyorum ve bu örnek json_decode kodunu kullanıldığını keşfettim. Ne işe yarar diye düşünürken meraktan sizin bloğunuza denk geldim. Merak ettiğim konu şu;
{‘fmt_url_map’}), $matches);
$url = explode(‘,’, $matches[0]);
header(“Location: {$url[0]}”); //high quality video
?>
yukarıdaki php kodunda json_decode($matches[0][1]); kısmı youtubedaki sanırım flv indirme adresini belirliyor. çünkü bu kodun çıktısı şunu vermekte misal olarak;
http://www.site.com/youtube.php?v=R__k-8iCj24 şeklinde girildiğinde çıktısı;
http://v4.lscache8.c.youtube.com/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cburst%2Cfactor&itag=22&ipbits=0&signature=49487B3662D06D8619968F422AC64E0ADBB98EC7.C8C7CAA24A2B34D30DD791049EC308DF4A12E1C5&sver=3&expire=1249452000&key=yt1&factor=1.25&burst=40&id=47ffe4fbc8828f6e vermekte ve bu link o flv download linki olmakta. Ve bu linki herzaman kullanamıyorsunuz verdiğim kod aynı video idsinde sürekli değişik flv linkleri vermekte ve bir önceki flv linki kullanılmaz hale geliyor. ,
Ayrıca diğer takıldğım bir konuda şu yukarıda vermiş olduğum flv linkini türkiyede indirmem imkansız bunu ben youtube ip şeklinde girdiğimde link çalışmakta ama bunu bu scriptte bi türlü entegre edemedim. Foreach döngüsünü denedim ama başarısız oldum
http://74.125.99.80/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cburst%2Cfactor&itag=22&ipbits=0&signature=49487B3662D06D8619968F422AC64E0ADBB98EC7.C8C7CAA24A2B34D30DD791049EC308DF4A12E1C5&sver=3&expire=1249452000&key=yt1&factor=1.25&burst=40&id=47ffe4fbc8828f6e
Youtube API’si hakkında pek bir bilgim yok, ama eÄŸer flv linki her seferinde deÄŸiÅŸiyorsa siz de videoyu oynattığınız yerde herseferinde yeniden flv linkini alın ve oynatın.
youtube.com u ip adresine çevirmek için ise str_replace fonksiyonunu kullanabilirsiniz.
$flv_linki = str_replace(“youtube.com”, “74.125.99.80″, $flv_linki);
gibi bir kod işinizi görecektir.
çalışmalarınızda başarılar.
teşekkür ederim işime yaradı
rica ederim,..
PHP 5.2.1 vurgusunu biraz daha abartmak gerekebilir.
Halen PHP versiyonunu güncellememiş bir çok hosting şirketleri var.
PHP’nin desteklemediÄŸi bir hostta çalışıyorsanız, json_encode ve json_decode için PEAR kullanmak iÅŸinizi kolaylaÅŸtıracaktır.
kullanım örneği alttaki linkte. php 4 ve 5.1X için
http://www.epigroove.com/posts/97/how_to_use_json_in_php_4_or_php_51x
hocam sitenin temasını cok begendim güzel editlemissin verebilme sansın varmıdır karsılıgında linkini eklesem ?