PHP ile JSON ve API Kullanımı

JSON (JavaScript Object Notation), veri alışverişi için yaygın olarak kullanılan hafif bir veri formatıdır. PHP ile JSON verilerini işleyebilir, API’lere istek gönderebilir ve gelen yanıtları kullanabiliriz.

Bu rehberde JSON oluşturma, okuma, API çağrıları yapma ve dış servislerle veri alışverişi gibi konuları detaylı bir şekilde ele alacağız.


1. JSON Nedir?

JSON, anahtar-değer çiftlerinden oluşan, veri depolamak ve aktarmak için kullanılan bir formattır. PHP’de JSON ile çalışırken json_encode() ve json_decode() fonksiyonlarını kullanırız.

Örnek bir JSON verisi:

{
    "isim": "Ali",
    "soyisim": "Yılmaz",
    "yas": 25,
    "email": "[email protected]"
}

JSON, veriyi kolayca okunabilir bir formata dönüştürür ve özellikle API’ler üzerinden veri alışverişi yaparken kullanılır.


2. PHP ile JSON İşlemleri

a) PHP Dizisini JSON’a Dönüştürme (json_encode)

PHP dizilerini JSON formatına çevirmek için json_encode() kullanılır.

<?php
$kisi = [
    "isim" => "Ali",
    "soyisim" => "Yılmaz",
    "yas" => 25,
    "email" => "[email protected]"
];

$jsonVeri = json_encode($kisi, JSON_PRETTY_PRINT); // JSON formatına çevir ve düzenli göster
echo $jsonVeri;
?>

💡 Sonuç:

{
    "isim": "Ali",
    "soyisim": "Yılmaz",
    "yas": 25,
    "email": "[email protected]"
}

JSON_PRETTY_PRINT parametresi JSON çıktısını daha okunabilir hale getirir.

Varsayılan olarak Türkçe karakterler Unicode olarak çevrilebilir, bunu önlemek için JSON_UNESCAPED_UNICODE ekleyebilirsiniz:

json_encode($kisi, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);


b) JSON Verisini PHP Dizisine Çevirme (json_decode)

JSON formatındaki veriyi PHP dizisine çevirmek için json_decode() kullanılır.

<?php
$jsonVeri = '{"isim": "Ali", "soyisim": "Yılmaz", "yas": 25, "email": "[email protected]"}';

$dizi = json_decode($jsonVeri, true); // true eklenirse PHP dizisi olarak döner
print_r($dizi);
?>

💡 Sonuç (PHP Dizisi):

Array
(
    [isim] => Ali
    [soyisim] => Yılmaz
    [yas] => 25
    [email] => [email protected]
)

  • Eğer true parametresi verilmezse, JSON verisi PHP nesnesi (stdClass) olarak döner.

3. PHP ile API Kullanımı (cURL ile GET ve POST İstekleri)

API’lerden veri almak veya API’lere veri göndermek için genellikle cURL kütüphanesi kullanılır.

a) API’den Veri Çekme (GET İsteği)

Bir API’den veri çekmek için cURL kullanabiliriz.

<?php
$url = "https://jsonplaceholder.typicode.com/posts/1"; // Örnek API

$ch = curl_init(); // cURL başlat
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Sonucu döndür
$response = curl_exec($ch); // API isteği yap
curl_close($ch); // Bağlantıyı kapat

$veri = json_decode($response, true); // JSON'u PHP dizisine çevir
print_r($veri);
?>

💡 Sonuç (Örnek API Yanıtı):

Array
(
    [userId] => 1
    [id] => 1
    [title] => sunt aut facere repellat provident occaecati excepturi optio reprehenderit
    [body] => quia et suscipit...
)


b) API’ye Veri Gönderme (POST İsteği)

API’ye veri göndermek için POST isteği kullanılır.

<?php
$url = "https://jsonplaceholder.typicode.com/posts"; // Örnek API

$veri = [
    "title" => "Yeni Post",
    "body" => "Bu bir test gönderisidir.",
    "userId" => 1
];

$jsonVeri = json_encode($veri); // Veriyi JSON formatına çevir

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonVeri);

$response = curl_exec($ch); // API isteği yap
curl_close($ch);

$sonuc = json_decode($response, true);
print_r($sonuc);
?>

  • CURLOPT_POST ile POST isteği yapıyoruz.
  • CURLOPT_HTTPHEADER ile içeriğin JSON olduğunu belirtiyoruz.
  • CURLOPT_POSTFIELDS ile gönderilecek veriyi ekliyoruz.

💡 API Yanıtı (Örnek Dönüş):

Array
(
    [title] => Yeni Post
    [body] => Bu bir test gönderisidir.
    [userId] => 1
    [id] => 101
)


4. PHP’de Gömülü API Kullanımı (file_get_contents ile API Çağrısı)

cURL yerine file_get_contents() ile de API çağrıları yapabilirsiniz.

<?php
$url = "https://jsonplaceholder.typicode.com/posts/1"; // API URL

$response = file_get_contents($url); // API'den veriyi al
$veri = json_decode($response, true); // JSON'u diziye çevir

print_r($veri);
?>

Bu yöntem cURL kurulumu gerektirmez ancak daha büyük projelerde cURL kullanılması önerilir.


5. Özet ve Sonuç

İşlemKullanılan PHP Fonksiyonları
PHP Dizisini JSON’a Çevirmejson_encode()
JSON Verisini PHP Dizisine Çevirmejson_decode()
API’den Veri Çekme (GET)cURL, file_get_contents()
API’ye Veri Gönderme (POST)cURL
API’den Veri Alma Alternatiffile_get_contents()

PHP ile JSON işlemlerini ve API çağrılarını rahatlıkla gerçekleştirebilirsiniz. JSON’un esnekliği ve API’lerin gücü ile harici servislerle veri alışverişi yapabilir, uygulamalarınızı daha dinamik hale getirebilirsiniz. 🚀

guest
1 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
spacenet one television
spacenet one television
1 ay önce

Thanks for one’s marvelous posting! I certainly enjoyed reading
it, you are a great author.I will be sure to bookmark
your blog and will eventually come back down the
road. I want to encourage one to continue your
great posts, have a nice afternoon!

1
0
YORUM YAPx