Json API oluşturma ve kullanımı

JSON (“Javascript Object Notation”), php ilen okunabilen bir veri biçimidir. Php’de bir diziden

<?php 
$dizi=array(1=>"elma",2=>"armut");
echo json_encode($dizi);
?>

örneğindeki gibi json_encode ile dönüştürülerek oluşturulur.

Çıktısı aşağıdaki gibidir.

{
  1: "elma",
  2: "armut"
}

Genelde API (“Application Programming Interface = Uygulama Programlama Arayüzü”)ler tarafından kullanılır.

Curl ile bağlanılan adreslerde alınan bu veriler json_decode ile geri dizi haline çevrilir.

<?php //Daha önceki verimiz
$dizi=array(1=>"elma",2=>"armut");
$API= json_encode($dizi);

//Nesne ve Çıktısı
$cikti=json_decode($API);
print_r($cikti);
//stdClass Object ( [1] => elma [2] => armut ) 


//Dizi ve Çıktısı
$cikti=json_decode($API,true);
print_r($cikti);
//Array ( [1] => elma [2] => armut )
?>

Mesela İstatistik API ile ilgili bir örnek verelim

<?php 
header('Content-Type: text/html; charset=utf-8');
function PhpStatistics(){
  $list=array("HTTP_HOST","REQUEST_URI","HTTP_CLIENT_IP","REMOTE_ADDR","HTTP_USER_AGENT","HTTP_ACCEPT_LANGUAGE");
  foreach($list as $l){$data[$l]=$_SERVER[$l];}
  $data=json_encode($data);
  $ch = curl_init();
  curl_setopt($ch,CURLOPT_HEADER,false);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
  curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/4.0 (compatible;)");
  curl_setopt($ch,CURLOPT_URL,"http://phpstate.ulusanyazilim.com/developer/userinfo/api.php?".http_build_query(array('data'=>$data)));
  return curl_exec($ch);
}
$json=PhpStatistics();
$dizi=json_decode($json);

print_r($dizi);

echo $tarayici=$dizi["agent_name"]."<br>";
echo $ip_adresi=$dizi["http_client_ip"];

?>

Youtube Oembed JSON API

<?php 
$url = "http://www.youtube.com/watch?v=CvBfHwUxHIk";//burası değişken
$oembedurlcreate = "http://www.youtube.com/oembed?url=".$url."&format=json";
$curl = curl_init($oembedurlcreate); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$html=curl_exec($curl);
curl_close($curl);
$result = json_decode($html, true);
echo $result["thumbnail_url"]."<br>";//http://i.ytimg.com/vi/CvBfHwUxHIk/hqdefault.jpg 
echo $result["provider_url"]."<br>";//http://www.youtube.com/ 
echo $result["thumbnail_height"]."<br>";//360 
echo $result["type"]."<br>";//video 
echo $result["provider_name"]."<br>";//YouTube 
echo $result["version"]."<br>";// 1.0 
echo $result["html"]."<br>";//html5 video oynacıtıcını görüntüler  
echo $result["author_name"]."<br>";//RihannaVEVO
echo $result["width"]."<br>";//459 
echo $result["title"]."<br>";//Rihanna - Umbrella (Orange Version) ft. JAY-Z
echo $result["height"]."<br>";//344 
echo $result["thumbnail_width"]."<br>";//480 
echo $result["author_url"]."<br>";//http://www.youtube.com/user/RihannaVEVO
?>