Konular

PHP Dizilerini, JSON ile JavaScripte json_encode ile Göndermek

PHP json_encode işlevi, kendisine aktarılan verileri bir JSON dizesine çevirir ve daha sonra bir JavaScript değişkenine gönderilebilir. Bu yazıda tek boyutlu JavaScript dizi örneği gösteriliyor.

PHP Dizilerini, JSON ile JavaScripte json_encode ile Göndermek

PHP json_encode işlevi, burada indexlenmiş bir diziyle gösterdiğimiz gibi, kendisine verilen değerin JSON eşdeğerini içeren bir dize döndürür:  

<?php
$ar = array('apple', 'orange', 'banana', 'strawberry');
echo json_encode($ar); // ["apple","orange","banana","strawberry"]
?>

Yukarıdaki gibi bir  JSON string çıktısını json_encode ile bir JavaScript değişkenine aşağıdaki gibi aktarabilirsiniz:  

<script type="text/javascript">
// pass PHP variable declared above to JavaScript variable
var ar = <?php echo json_encode($ar) ?>;
</script>

 

Sayısal olarak indexlenmiş bir PHP dizisi, JSON dizesindeki bir dizi değişmezine çevrilir. Dizinin Obje olarak çıktısının alınmasını istiyorsanız bir JSON_FORCE_OBJECT seçeneği kullanılabilir:  

<?php
echo json_encode($ar, JSON_FORCE_OBJECT);
// {"0":"apple","1":"orange","2":"banana","3":"strawberry"}
?>

  JSON dizesinin, okumayı zorlaştıracak beyaz boşluk içermediğine dikkat edin. JSON çıktısını biçimlendirmek için bir JSON_PRETTY_PRINT seçeneği [1] kullanılabilir. Aşağıdaki ilişkilendirilebilir dizi örneğinde gösterilmiştir.

Sayısal Olarak Dizinlenmiş Dizi Örneği

Bu örnek, dize, sayısal, boole ve null değerlerden oluşan sayısal olarak indexlenmiş bir PHP dizisini json_encode'a geçirmeyi gösterir. Json_encode çıktısını bir JavaScript değişkenine yansıtıyoruz ve sonuç bir dizi değişmezidir:  

<?php
$ar = array('apple', 'orange', 1, false, null, true, 3 + 5);
?>
<script type="text/javascript">
var ar = <?php echo json_encode($ar) ?>;
// ["apple","orange",1,false,null,true,8];
// access 4th element in array
alert( ar[3] ); // false
</script>

  Dizinin öğelerine erişimi göstermek için bir uyarı kullanırız. Veri türlerinin korunduğuna, eski moda yaklaşımla ise dizgilere dönüştürüldüğüne dikkat edin.

İlişkisel Dizi Örneği

Bu örnek, json_encode kullanılarak JavaScript'e ilişkilendirilebilir bir PHP dizi çıktısını gösterir. PHP'nin ilişkilendirilebilir dizisinin JavaScript'te nesne değişmezine (Literal) dönüştüğüne dikkat edin:   

<?php
$book = array(
    "title" => "JavaScript: The Definitive Guide",
    "author" => "David Flanagan",
    "edition" => 6
);
?>
<script type="text/javascript">
var book = <?php echo json_encode($book, JSON_PRETTY_PRINT) ?>;
/* var book = {
    "title": "JavaScript: The Definitive Guide",
    "author": "David Flanagan",
    "edition": 6
}; */
alert(book.title);
</script>

Çıktıyı okunabilir bir biçimde görüntülemek için JSON_PRETTY_PRINT seçeneğini json_encode için ikinci argüman olarak kullanıyoruz.

Yukarıda belirtilen uyarı ile gösterildiği gibi nokta sözdizimini veya köşeli ayraç sözdizimi: kitap ['başlık'] kullanarak nesne özelliklerine erişebilirsiniz.

Peki ya JSON.parse ?

Belki de bu örnekteki sonuca JavaScript'in JSON.parse öğesinin uygulanmadığını fark ettiniz. JavaScript tarafında bir ayrıştırıcı aracılığıyla json_encode sonuçlarını çalıştırmak her zaman gerekli olmasa da, genellikle bunu yapmak isteyeceksiniz. JSON.parse'nin ne zaman ve nasıl kullanılacağı hakkında daha fazla bilgi edinin.

PHP’de JSON Fonksiyonları

PHP bize JSON ile ilgili 2 fonksiyon sunuyor.. Bunların ilki json_encode()yani bir json formatı dönüştürücüsü ve ikincisi ise json_decode() yani bir json formatı çözücüsü.. Zaten temelde json işlemi içinde bu 2 fonksiyon yeterlidir.

json_encode()

Bir dizi ifadeyi json formatına dönüştürür.. Küçük bir örnek ile kullanımını görelim;

$array = array(
    "kadi" => "tayfun erbilen",
    "sifre" => "123456"
);
$json = json_encode($array);

echo $json;
   

Bu örneğin çıktısı aşağıdaki gibi olacaktır;

{
    kadi: "tayfun erbilen,
    sifre: "
123456"
}
 
 
 
 

Bu fonksiyona ait birde 2. parametre vardır ancak zorunlu değildir.. 2. parametre değerleri parse etmek için kullanılan tip atamalarıdır.. Sırasıyla aşağıda inceleyelim;

JSON_HEX_TAG
Bütün < ve > karakterleri u003C ve u003E karakterlerine dönüştürülürler.

JSON_HEX_AMP
Bütün & karakterleri u0026 karakterlerine dönüştürülürler.

JSON_HEX_APOS
Bütün ‘ karakterleri u0027 karakterlerine dönüştürülürler.

JSON_HEX_QUOT
Bütün “ karakterleri u0022 dönüştürülürler.

JSON_FORCE_OBJECT
İlişkisel olmayan dizi kullanıldığında çıktıların dizi yerine nesne olmasını sağlar.

json_decode()

JSON formatındaki veriyi çözer ve php’de kullanabileceğimiz hale getirir.. Yapısal olarak obje ve dizi halinde çevrilir. 3 parametre alır ancak sadece ilk parametre zorunludur. Bir örnek ile daha anlaşılır hale getirelim;

$json = '{"kadi" : "tayfun erbilen", "sifre" : "123456"}';
var_dump( json_decode($json) );
   

Yani biz bu değerlere tam olarak şu şekilde erişebiliriz; 

$json = '{"kadi" : "tayfun erbilen", "sifre" : "123456"}';
$data = json_decode($json)
echo $data->kadi; // tayfun erbilen
echo $data->sifre; // 123456
   

Fonksiyona 2. parametreyi true olarak atarsak nesne değil dizi olarak çözme işlemi yapacaktır.. O zamanda veriye erişimimiz yukarıdaki gibi değil aşağıdaki gibi olacaktır.

$json = '{"kadi" : "tayfun erbilen", "sifre" : "123456"}';
$data = json_decode($json, true)
echo $data['kadi']; // tayfun erbilen
echo $data['sifre']; // 123456
   

json_last_error()

JSON işleminde bir hata oluşup oluşmadığını bu fonksiyon ile kontrol edebiliriz. Bir hata olduğunda sayısal değer döndürecektir.. Bu sayısal değerler sırasıyla aşağıdaki sabitleri temsil etmektedir.

JSON_ERROR_NONE – Hata bulunamadı
JSON_ERROR_DEPTH – Azami yığın derinliği aşıldı (?)
JSON_ERROR_CTRL_CHAR – Denetim karakteri hatası, muhtemelen yanlış kodlanmış
JSON_ERROR_SYNTAX – Sözdizimi hatası
JSON_ERROR_UTF8 – UTF-8 karakter kodlama hatası, muhtemelen yanlış kodlanmış (Geçerlilik : PHP 5.3.1)

Kaynak

Yorumunuzu Ekleyin
PHP Dizilerini, JSON ile JavaScripte json_encode ile Göndermek Yorumları +1 Yorum
  • zaid
    1
    zaid
    I like the helpful information you provide in your articles.

    I will bookmark your blog and check again here regularly.

    I?m quite sure I?ll learn many new stuff right here! Good luck for the next!

    I have check this articls but its change How to Insert JSON data into MySQL using PHP
    06 Temmuz 2020 20:05:49, Pazartesi

WinBinder İncelenmesi

WinBinder indirmek ve yüklemek , WinBinder Yapısı Hakkında Bilgiler , WinBinder Örnekleri , WinBinderda Klaslar ve Fonksiyonlar

123,038 Okunma Henüz yorum yapılmamış 15/01/2008 00:58:13

Kurallı İfadeler (regex Engine)

Bir regex'in gerçekte nasıl çalıştığını bilmek daha efektif çalışan regex ifadeleri oluşturmamızı ve regex'leri daha isabetli oluşturmamızı sağlar. Bu yazımızda oluşturduğunuz regex ifadelerinin neden beklediğiniz sonuçları vermediğini ve umduğunuz eşleşmeleri yerine getirmediğini öğreneceksiniz. Bu da bizim tabir yerindeyse daha az kafa patlatmamızı ve daha az zaman harcamamızı sağlayacaktır.

44,748 Okunma 1 Yorum 14/07/2007 05:23:11

Nesneye Yönelimli Php

Classlarla ilgili ingilizce bir makale

37,005 Okunma Henüz yorum yapılmamış 06/01/2008 11:24:59

PHP ile PDF dosya oluşturmak

Php ile yeni bir pdf dosyası oluşturmak : Öncelikle php ile pdf işlemleri yapmak için bir pdf kütüphanesine ihtiyacınız olacak

36,063 Okunma Henüz yorum yapılmamış 06/09/2007 01:22:38

PHP nedir?

HTML kodlarının arasına yerleştirilmiş php kodlarından ayrıştırıp işleyerek sonuçta saf HTML formatında bir çıktı üretmek ve Web sunucusuna iletmektir.

35,205 Okunma Henüz yorum yapılmamış 26/09/2011 14:50:52

$_FILES

Örnek kod ve açıklamalar

34,742 Okunma 4 Yorum 30/12/2007 13:36:25

Php ile Oturum Yönetimi (SESSION)

Türkçesi oturum anlamına gelen session bilgilerin saklanması için kullanılan mantıksal bir nesnedir.Session oturum yönetimini kullanarak şifreli sayfalar oluşturarak ve bu sayfaları belirlediğiniz kullanıcıların görmesini sağlayabilirsiniz.

28,486 Okunma Henüz yorum yapılmamış 22/05/2013 16:29:40 22/05/2013 16:29:55

$_SERVER

$_SERVER host bilgileri, header bilgileri, yollar ve script yolları gibi bilgileri içeren bir dizidir. Bu dizideki değerler web server tarafından üretilir. Tüm server yazılımlarının, tüm değerleri atayacağına dair bir kesinlik yoktur. Yazılım bazılarını atamayabilir, veyahut burada anlatılacak değerlerin haricinde değerler ekleyebilir

28,273 Okunma Henüz yorum yapılmamış 23/10/2007 00:51:55

Oop - Nesne Yönelimli Programlama

Artık ister istemez her programcının bulaştığı bu teknik hakkında sayısız makale yazılmıştır bu güne kadar. Bu makale de onlardan biri

28,146 Okunma 1 Yorum 06/01/2008 11:26:55

Xampp Kurulumu

Xampp apache, mysql, php ve phpmyadmin için kolay ve basit kurulum sağlayan bir uygulamadır.

26,985 Okunma Henüz yorum yapılmamış 19/12/2011 10:00:36

Verileri doğrulamak için PHP ile filtreleme işlemleri

Ziyaretçilerden gelen verilerin istediğimiz formata uygunluğunu kontrol etmeliyiz ki, güvenlik açığı yaratmayalım. E-postaları, web adreslerini, bilgi girişlerini ve dahasını Her birine uygun farklı fonksiyonlar yazıldı bu vakte kadar. Ancak PHP 5.2.0 ve üstü sürümlerde bu fonksiyonlara gereksinim azaldı. Çünkü PHP filtreleme fonksiyonları standart oldu.

26,180 Okunma Henüz yorum yapılmamış 02/12/2008 04:19:24

Php İle Excel Dosyası Oluşturmak

Genelde, herhangi bir biçimlendirme söz konusu olmadığında, veritabanındaki bir bilgiyi ya da başka bir tabloyu excel ortamına aktarmak için csv yöntemini kullanırım. Bu yöntem herkesin bildiği gibi, her sütunu tab ya da noktalı virgül gibi bir karakterle ve her satırı da enter karakteri ile bölmekten ibaret. Ama biçimlendirme söz konusu olduğunda, mesela sütunlara bir genişlik vermek, yazıları bold yapmak, bazı hücreleri sayı ya da para tipine çevirmek gibi biçimlendirmelerde bu yöntem işe yaramamakta.

26,110 Okunma 1 Yorum 22/07/2008 01:35:17

$_ENV

25,852 Okunma Henüz yorum yapılmamış 31/12/2007 09:46:00

En iyi 25 php template motoru

Php tabanlı web siteleri dizayn ederken, php kodlarını html kodlar arasına gömeriz. Fakat gün gelir bu kodları düzenlemek istediğimizde çok büyük bir çaba gerektirir. Bu tarz durumlarla başa çıkabilmek için ve daha kararlı bir sistem kodlamak için tema sistemleri geliştirebilirsiniz. Tema sistemi ya da motorlarının asıl amacı, php kodları ile html kodlarını birbirinden ayırmaktır. Böylece hangi kod üzerinde değişiklik yapmanız gerekiyorsa, kendisine ait dosyalarını açarak bu işlemi gerçekleştirebilirsiniz

25,630 Okunma Henüz yorum yapılmamış 16/02/2008 01:35:10

Php Mysql to XML

Bu yapıyı geliştirerek mysql veritabanınızdaki datalarınızı xml standartlarına dönüştürebilirsiniz.

25,171 Okunma Henüz yorum yapılmamış 05/10/2008 01:56:47

Dizi Tanımlamaları

PHP’de array tanımlayıcısını kullanarak içerisinde elemanları yerleştirmek yoluyla ya da index numarasını köşeli parantezler içerisinde belirterek atama yaparak dizi oluşturmak mümkündür

24,798 Okunma Henüz yorum yapılmamış 23/10/2007 00:36:18

Harici Dosya İnclude

İnclude kullanımı ve örnekler

24,678 Okunma Henüz yorum yapılmamış 14/04/2008 01:42:12

$_REQUEST

$_GET, $_POST, ve $_COOKIE değişkenlerini içeriğinden meydana gelen çağrışımlı bir dizidir. Bu değişken bir superglobal olduğu için tüm alanlarda (scope) geçerlidir ve bundan dolayıdır ki global $_REQUEST ; şeklinde bir tanımlamaya ihtiyaç duymaz. Eğer register_globals değişkeni php. İni de ayarlanmışsa bu değişken her yerde (Global Scope) kullanılabilir

23,823 Okunma Henüz yorum yapılmamış 24/12/2007 00:16:58

Yükleniyor...