Navigate / search

Php ile Json Parse İşlemi

İşlemlere başlamadan önce aşağıdaki json verilerini bilgisayarınızda bir dosya.txt oluşturarak kaydedin.

http://pastebin.com/VnAjWbUV

JSON Parse etmek için json_decode fonksiyonunu kullanacağız.
json_decode fonksiyonu iki farklı şekilde çalışıyor. Birisi nesne şeklinde diğeri array şeklinde çalışıyor.
Örnek olarak verdiğim JSON’daki sadece Click Here yazısını ekrana yazalım.

$dosyayicek = file_get_contents("dosya.txt"); /* isim.txt dosyasının çalıştığımız dizinde olduğunu varsaydım. */
 
$decodeislemi = json_decode($dosyayicek, true); /* eğer buradaki true yazan yer false yapılırsa veya tamamen kaldırılırsa nesne olarak işlem yapılabilir. */
 
 
print_r ($decodeislemi);
 
/* Şimdi gelen JSON'ı decode ettikten sonra ekrana bastık. Bakalım nasıl bir şeymiş */
echo "<hr>";
 
echo ($decodeislemi[widget][feature][data]); /* Sırayla giderek Click Here'a ulaştık. */

file_put_contents () – Dosyaya Bilgi Yazmak

Boş bir txt dosyasına bir metin eklemek için file_put_contents fonksiyonunu kullanırız.
Şimdi PHP dosyamızla aynı klasörde bir txt dosyası oluşturalım.Dosyanın içine file_put_contents komutu ile yazmak istediklerimizi yazalım.

Ama önce file_put_contents fonksiyonunun kullanımını görelim.

file_put_contents(dosya_ismi , yazılacak metin)

İlk parametre olarak txt dosyamızın adını yazacağız.İkinci parametre ise dosyanın içine yazacağımız metin olacak.
Php dosyamızla aynı klasörde “bos_dosya.txt” isimli bir metin belgesi oluşturalım.

$dosyaismi="bos_dosya.txt";
$metin="Deneme Yazımız";
$dizi=("Ocak","Şubat","Mart","Nisan");
 
if(file_put_contents($dosyaismi,$metin)){
      echo "$dosyaismi isimli dosyaya yazma işlemi başarılı.";
}else{
      echo "$dosyaismi isimli dosyaya yazma işlemi başarsız.";
}

Çalıştırdığınızda;

bos_dosya.txt isimli dosyaya yazma işlemi başarılı.

şeklinde mesaj alacaksınız.ve metin belgesine baktığınızda $metin değişkeninin içeriğindeki ifadenin metin belgesine eklendiğini göreceksiniz.

file_put_contents fonksiyonu ile sadece bir değişken değil string bir ifade veya dizileride metin belgesine yazabiliriz.Aynı programda file_put_contents komutunu bu iki farklı şekilde deneyin.

file_put_contents($dosyaismi, "String ifademiz")

ve

file_put_contents($dosyaismi, $dizi)

String ifadeyide diziyide metin belgemize yazdığını göreceksiniz.

ŞİMDİ GELELİM İŞİN PÜF NOKTASINA;

bu ana kadar denediğimiz kodlarda durum şöyle idi.file_put_contents fonksiyonunu yukarıdaki gibi kullandığımızda txt dosyamızın içeriğinde ne varsa yok ederdi.Aynı Kodu birden fazla kere çalıştırsakta yazacağımız metini birden fazla görmeyiz.Yani dosyanın içeriğinde ne olursa olsun dosyanın son hali, ikinci parametrede belirttiğimiz metin olacaktır.

Peki ya bu dosyaya biz bir metin eklemek istiyoruz.O zaman ne yapmalıyız ?
İşte burda da FILE_APPEND parametresi devreye giriyor.file_put_contents fonksiyonunu şu şekilde kullanmamız dosyanın eski içeriğine zarar vermeden sadece ekleme yapmak için kullanabiliriz.

file_put_contents($dosyaismi, $metin,FILE_APPEND)

Php – Touch () Yeni Dosya Oluşturmak

Dosya ve dizin işlemleri – Yeni Dosya Oluşturmak

Yeni dosya oluşturmak için touch() fonksiyonunu kullanırız.Komutun kullanımı oldukça basittir.İsterseniz php dosyasının olduğu dizine istersenizde başka dizinler içine boş bir dosya oluşturabilirsiniz.Komutun nasıl kullanıldığına bir bakalım.

touch("yeni_dosya.txt");

Bu şekilde yeni ve boş bir dosya oluşturabilirsiniz.Yada mevcut bir dizininiz var ise bu dizinin içinede dosya oluşturabilirsiniz.Dizinin içine dosya oluşturmak için ise şu şekilde kullanırız.

touch("dizin_adi/yeni_dosya.txt");

Böylece hem aynı dizinde hemde farklı dizinler içine yeni boş bir dosya oluşturmayı öğrendik.şimdi biraz daha geliştirelim kodlarımızı ve dosya oluşturulup oluşturulmadığından emin olalım.Bunuda if() fonksiyonu yardımıyla yapacağız.

if (touch("yeni_dosya.txt")) {
       echo "Dosya oluşturuldu";
}else{
       echo "Dosya Oluşturulamadı";
}

If() yardımıyla dosyanın oluşturulup oluşturulamadığınıda kontrol etmiş olduk.Dosya oluşturulduysa “Dosya Oluşturulamadı” oluşturulamadıysa “Dosya Oluşturulamadı” mesajını alacağız.

Kodlarımızı birazdaha geliştirmeye ne dersiniz.Şimdi ise dosya adımızı bir değişkene atayalım ve dosya adımızı başka yerlerde kullanalım.

$dosya_adi="yeni_dosya.txt";
if (touch($dosya_adi)) {
       echo "$dosya_adi isimli Dosya oluşturuldu";
}else{
       echo "$dosya_adi isimli Dosya Oluşturulamadı";
}

Kodlarımızı çalışabilir bi hale getirmiş olduk.Kodlarımızı çalıştırmayı denediğinizde dosya oluşturuduysa;

yeni_dosya.txt isimli Dosya oluşturuldu

oluşturulamadıysa

yeni_dosya.txt isimli Dosya Oluşturulamadı

mesajını alacağız.

Php ‘de Formdan Gelen Veriyi Dizi Olarak Göndermek

PHP DERSLERİ – Formdan Gelen Veriyi Dizi Olarak Göndermek
Formlardan gelen verilerde herzaman tek sonuç gelmez.Kimi zaman bir koşul için birden fazla sonuç dönebilir.Bu sonuçlarıda php de dizi olarak almayı göreceğiz şimdi.

Çoklu seçmeli bir form oluşturalım.Bunun için bir option menu multiple seçeneğini kullanalım.bu html komutlarını kullanırken select formuna verdiğimiz ismin sonuna “[]” koyarak bunun bir dizi olduğunu belirtmemiz gerekir

1
2
3
4
5
6
7
8
9
10
11
<h2>Hergün Girdiğiniz Siteler</h2>
<form action="action.php" method="get">
      <select name="sites[]" multiple="multiple">
            <option>Twitter</option>
            <option>Google</option>
            <option>Yahoo</option>
            <option>Hotmail</option>
            <option>Facebook</option>
      </select>
      <input type="submit" value="Gönder" />
</form>

Bu şekilde bir formumuz olmuş olacak.CTRL tuşuna basılı tuturak çoklu seçme işlemimizi yapabiliriz.

Hergün Girdiğiniz Siteler

Şimdi sıra geldi php de gönderilen verilerin bir diziye atılması ve bu verilerin kullanılması.formun gönderileceği adresi action.php olarak belirlemiştik.Action.php dosyasını oluşturmaya başlayalım.Bu işe ilk önce gelen dizi değerlerimizi bir değişkene atayarak başlayalım. Bunun için $_GET ‘ ten yararlanacağız. Sonrasında ise foreach fonksiyonu ile dizi değerlerimizi yazdıracağız.
action.php

1
2
3
4
5
6
7
<?php
$sites=$_GET['sites'];
 
foreach ( $sites as $siteAdi){
	print $siteAdi."<br>";
}
?>

Html Web Formlarına Giriş

Konuya girerken ilk önce HTML web formlardan bahsetmek istiyorum.Konumuz Html değil ama bilmeyenler veya unutanlar için tekrar hatırlatacağız konu içerisinde HTML’de formları.

Süper globallere girmeden öncede web form-php mantığından bahsetmek istiyorum.İnternette gezinirken hemen hemen hergün web formları ile karşılaşıyorsunuz.Googleda arama yaptığınız metin kutusu ve aramayı başlatmak için bastığınız buton web formları konusuna dahildir.Buna örnek olarak üye girişi yaptığınız kullanıcı adı ve parola girdiğiniz yada kayıt olurken email adresi telefon gizli yanıt gibi yerler web formlarıdır.

Bahsettiğimiz bu formlar html mantığı içe çalışır.Buradaki formlara girdiğimiz verileri gönder veya kaydet gibi butonlara bastığımızda bu bilgiler PHP ye gönderilir.Sonra yazdığımız kodlar ile bu bilgileri PHP içerisinde kullanabiliriz.

Formdaki verileri iki farklı metod ile gönderebiliriz.Bunların ilki GET diğeri ise POST metodudur.
Get metodunda gönderilen veriler kullanıcı tarafından adres satırında görülebilir.(…index.php?sayfa=indir) Post metodunda ise kesinlikle kullanıcı tarafından bu veriler görülemez.

Bir form oluşturmak için FORM tagları kullanılır.Form tagında kullanacağımız parametler ise method=”” ve action=”” ‘dır.
Method parametresinde gönderilecek verinin post ile yada get yoluyle olacağını belirliyoruz.
Action parametresinde ise butona basıldığında hangi dosyadaki komutları çalıştıracağımızı söylüyoruz.

1
2
<form action="oku.php" method="post">
</form>

evet formumuzu oluşturduk şimdi formumuzun içindeki item leri ekleyelim.Bir adet isim için bir adette email adresi yazmak isteyelim.Bunları yazdığımız kutuya textbox denir ve form tagları arasında şu komutla eklenir.

1
2
<input type="text" name="isim">
<input type="text" name="email">

Şimdide bir tane bu verileri göndermek için buton ekleyelim

1
<input type="submit" value="Gönder">

Şimdi bunları FORM tagları arasına yerleştirelim.
form.html

1
2
3
4
5
<form action="oku.php" method="post">
     <input type="text" name="isim">
     <input type="text" name="email">
     <input type="submit" value="Gönder">
</form>

Çalışmaya hazır bir formumuz oluşmuştur.Bilgileri doldurup gönder butonuna bastığımızda action=”oku.php” ‘ da yazdığımız gibi oku.php dosyasına bu veriler gönderilip oku.php dosyası çalıştırılacaktır.



Gönder butonuna basıp verileri oku.php ye gönderildiğinde oku.php içerisindeki kodlar çalışır.Buna kısa bir örnek yapalım sonra süpergloballeri görelim.
Post yada Get metoduyla gelen veriyi almak için süperglobal değişkenlerinden birini kullanmamız gerekir.Örneğimizi post ile yaptığımız için veriyi şu şekilde alacağız.

oku.php

1
2
3
$isim=$_POST[isim];
$email=$_POST[email];
echo "Formu dolduranın ismi $isim Email adresi $email";

Çalıştırdığımızda forma yazdığımız metinlerle bir yazı göreceksiniz ;)