Bu makalemde PHP ile XML dosyasındaki veriyi nasıl okuyacağımızı göstereceğim. Bu makaleyi okuduktan sonra dilediğiniz sitenin(paylaşıma açık olması gerekli) XML dosyalarına erişebilirsiniz. Ayrıca kendi RSS Okuyucunuzu bile yapabilirsiniz. Sonuçta RSS okuyucularının çıkış noktası XML dosyalarının yorumlanmasıdır.
Teorik Bilgi: PHP simpleXML XML dosylarınızı nesneye çevirmenizi sağlar. Bu makalede simpleXML’in simplexml_load_file() fonksiyonunu göreceğiz.
Fonksiyonun kullanım yapısı şu şekildedir:
1 2 |
<?php simplexml_load_file('dosya'); // Daha detaylı bir kullanım için php.net'i ziyaret etmeyi unutmayın |
Hemen bir örnek ile kullanımını göstereyim. Öncelikle uyeler.xml adlı bir dosya oluşturun. Bu dosyanın içeriği aşağıdaki gibi olsun:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?xml version="1.0" encoding="UTF-8"?> <uyeler> <uye> <ad>sagoral</ad> <adres>İzmir Türkiye</adres> <email>ounal@trkodlama.com</email> </uye> <uye> <ad>Oral ÜNAL</ad> <adres>İzmir Çiğli</adres> <email>ounal_2@trkodlama.com</email> </uye> <uye> <ad>Oral</ad> <adres>Çiğli Türkiye</adres> <email>ounal_3@trkodlama.com</email> </uye> </uyeler> |
Aşağıdaki PHP kodu ile XML dosyamızdaki bütün verileri simplexml_load_file() ve foreach() kullanarak okuyalım:
1 2 3 4 5 6 7 8 9 10 11 |
<?php // Şimdi uyeler.xml dosyamızı çekelim ve eğer hata meydala gelirse hatayı yazdıralım: if(!$xml=simplexml_load_file('uyeler.xml')){ trigger_error('XML dosyasını okurken hata meydana geldi.',E_USER_ERROR); } echo 'XML dosyasının içeriğini yazdıralım:...<br />'; foreach($xml as $uye){ echo 'Ad: '.$uye->ad.' Adres: '.$uye->adres.' Email: '.$uye->email.'<br />'; } |
Yukarıdaki PHP kodunun ekran görüntüsü aşağıdaki gibi olacaktır:
1 2 3 4 |
XML Dosyasının içeriğini yazdıralım:... Ad: sagoral Adres: İzmir Türkiye Email: ounal@trkodlama.com Ad: Oral ÜNAL Adres: İzmir Çiğli Email: ounal_2@trkodlama.com Ad: Oral Adres: Çiğli Türkiye Email: ounal_3@trkodlama.com |
Gerçekten çok kolaymış değil mi? Ne kadar kolay olduğunu gördünüz. Å?imdi bir örnek daha yapalım ve tamamen pekiştirelim. Bu örneğimizde sadece adları alalım ve alt alta sıralayalım:
1 2 3 4 5 6 7 8 9 10 |
<?php // Şimdi uyeler.xml dosyamızı çekelim ve eğer hata meydala gelirse hatayı yazdıralım: if(!$xml=simplexml_load_file('uyeler.xml')){ trigger_error('XML dosyasını okurken hata meydana geldi.',E_USER_ERROR); } echo 'XML dosyasının içeriğini yazdıralım:...<br />'; foreach($xml as $uye){ echo 'Ad: '.$uye->ad.' <br />'; } |
Yukarıdaki PHP kodunun ekran görüntüsü aşağıdaki gibi olacaktır:
XML Dosyasının içeriğini yazdıralım:…
1 2 3 |
Ad: sagoral Ad: Oral ÜNAL Ad: Oral |
Ne kadar kolay olduğunu görmüş olduk. Şimdi XML dosyasından bilgi çekme tarzımızı değiştirelim. Bu işlemde oldukça basittir. Tamamen dizi mantığı ile bu olayından üstesinden geleceğiz. Örneğimizi inceleyelim:
1 2 3 4 5 6 7 8 |
<?php // Sadece ilk üyenin bilgilerini çekelim if(!$xml=simplexml_load_file('uyeler.xml')){ trigger_error('XML dosyasını okurken hata meydana geldi.',E_USER_ERROR); } // İlk kullanıcının adını alalım echo 'İlk kullanıcının adı: '.$xml->uye[0]->ad; |
Yukarıdaki kodun ekran görüntüsü aşağıdaki gibi olacaktır:
1 |
İlk kullanıcının adı: sagoral |
PHP’de biliyorsunuz sayma işlemi 0’dan başlıyor.. Bu nedenle 1. üyenin bilgisini çekerken 0; 2. üyenin bilgisini çekerken 1 kullanıyoruz. Yani dizilerle aynı mantıkla çalışıyor.
Umarım yararlı olmuştur. Kolay gelsin,
Yorumlar