4. RSS Feed' imize veritabanımızdan nasıl dinamik veri ekleyebiliriz? Şimdi sitemize uygun bir RSS alanını nasıl dinamik olarak oluşturup yükleyebileceğimize bakalım: Ben yeni eklenen başlıkları ve güncellemeleri database den çektiğim için rss dosyamı standart .xml formatında değil .php olarak hazırlıyorum. Dosyamızın xml olduğunu belirten bir header ile kodumuza başlıyor ve veritabanına bağlanıyoruz:
<?php header("Content-type: text/xml"); @ mysql_connect ("localhost", "root", "") || die ("Veritabanına Ulaşılamıyor !"); @ mysql_select_db ("deneme") || die ("Veritabanı Seçilemiyor !"); @ mysql_query ("SET NAMES 'latin5' "); // Veri tabanına ekler-çekerken Türkçe karakter düzeltmesi Daha sonra xml tanımlamalarımızı yapıp rss dosyamızın sabit bileşenlerini oluşturuyoruz:
$xml_ciktisi="<?xml version=\"1.0\" encoding=\"iso-8859-9\"?> <rss version=\"2.0\"> <channel> <title>AZIZCE.COM</title> <link>http://www.azizce.com</link> <description>Kişisel, Paylaşımlı Web Sayfası</description> <language>tr</language> <copyright>(C) 2006 AZIZCE.COM</copyright>"; Ardından <item> ile yayınlayacağımız verilerimizi veritabanından çekiyoruz. ÖNEMLİ: XML kodları "&" karakteri ile başlayan ý gibi HTML özel karakterlerinde hata verip çalışmayacaktır. Bu yüzden bunları silmemiz veya değiştirmemiz gerekir.(Varsa veritabanımızdaki kayıttaki kodları da elbette yok etmeliyiz.)
$sql= "SELECT * FROM tablo_adi ORDER BY tarih DESC LIMIT 0,10"; $sorgu= mysql_query($sql); while ( $veri = mysql_fetch_array($sorgu)) { $id = $veri["id"]; $baslik = $veri["konu"]; $icerik = @ eregi_replace('&[A-Za-z]{0,7};', '', strip_tags($veri["post"])); $tarih = $veri["tarih"]; Ve son olarak oluşacak xml çıktımızın taslağını ve ziyaretçinin browserındaki RSS Feed de konu/başlık seçildiğinde gidilecek linki oluşturuyoruz:
$xml_ciktisi .= " <item> <title>$baslik</title> <link>http://www.websitesi.com/index.php?page=rss&id=$id</link> <description>$icerik</description> <pubDate>". date($tarih). "</pubDate> </item>"; }; echo $xml_ciktisi . "</channel> </rss>"; ?> Bu şekilde RSS Alanımız artık hazır. Sayfalarınızın <head></head> etiketleri arasına RSS Feed inizin yerini ve yayımladığınızı belirten <meta> etiketlerinizi koymayı unutmayın.
Bu makalenin kullanımı halinde "azizce.com" u kaynak göstermeyi lütfen unutmayın. Saygılarımla... Aziz
|