• Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha fazla bilgi edin.

Dinamik RSS Yapımı

Konuyu Okuyan Kişiler (0)

ByTMY

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
30
Beğeniler
0
#1
RSS beslemeleri özel olarak tanımlanmış sözdizimi içeren XML dosyalarından oluşur. Bu yüzden işe, tarayıcıya, işlenen içeriğin bir XML dosyası olduğunu söyleyecek başlığımızı tanımlamakla başlıyoruz.
PHP:
header('Content-Type: text/xml');
Bu kodu PHP dosyamızın en başına eklediğimizde, tarayıcı, bu dosyadan işlenen içeriği bir XML dosyası olarak tanıyacaktır.
Gösterilecek olan içeriğin XML olduğunu tanımladıktan sonra sıra RSS beslemesi alınacak verileri yazdırmaya geldi. RSS tıpkı HTML'deki başlık türünden bir yapıya sahiptir. Örnekleyecek olursak:
PHP:
echo '<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Sitemin Başlığı</title>
<description>Site açıklamam</description>
<link>http://siteadresim.com/</link>';
1. satırdaki <?xml bölümü tarayıcıya içeriğin bir XML dosyası olduğunu söyler. 2. satırdaki alan RSS beslememizin versiyonunu tanımlar. Biz makalemizde RSS2 versiyonunu kullanacağız. 3. satırdaki <channel> etiketi ise HTML'deki <body> etiketine benzer, içeriğin başladığını belirten bir etikettir. 4. satırdaki <title> etiketi RSS beslememizin başlığını tanımlar. Sitenizin başlığı ile aynı olabilir. 5. satırdaki <description> etiketi RSS beslememizin açıklamasını oluşturur. Son olarak 6. satırdaki <link> etiketi ise sitemizin adresini oluşturur.

İçeriği Beslemeye Aktarmak
Bu bölümde veritabanımızdan tarihe göre son 15 içeriği çekip RSS beslememizde yayınlayacağız. Başlıyoruz:
PHP:
$sorgu = mysql_query("SELECT id, baslik, yazi, tarih FROM icerik ORDER BY tarih DESC LIMIT 15") or die(mysql_error());
while ($icerik = mysql_fetch_array($sorgu)){
      
    echo '
       <item>
          <title>'.$icerik[baslik].'</title>
          <description><=!=[=C=D=A=T=A=[
          '.$icerik[yazi].'
          ]=]=></description>
          <link>http://siteniz.com/yazi.php?id='.$icerik[id].'</link>
          <pubDate>'.$icerik[tarih].' GMT</pubDate>
      </item>';
}
İlk olarak veritabanımızdan verilerimizi çekecek olan sorgumuzu yazdık. Daha sonra while fonksiyonunu kullanarak sorgumuzla bir döngü oluşturduk ve besleme içeriğimizi tanımladık. <title> etiketi besleme içeriğinin başlığını, <description> etiketi besleme içeriğini, <link> etiketi besleme içeriğine giden linki, <pubDate> etiketi ise besleme içeriğimizin yayınladığı tarihi belirtmektedir.
Not: Yukarıda veritabanından alınan tarihin, tarih formatında olduğunu varsaydım. Tarihi timestamp olarak tutacaksanız önce düzgün tarih formatına dönüştürmelisiniz.

Şimdi RSS beslememizi kapatıyoruz.
PHP:
echo '</channel>
</rss>';
Ve işlem tamam! Oluşturduğumuz PHP kodunun tamamı aşağıdaki gibi olacaktır:
PHP:
<?php
header('Content-Type: text/xml');

echo '<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Sitemin Başlığı</title>
<description>Site açıklamam</description>
<link>http://siteadresim.com/</link>';
$sorgu = mysql_query("SELECT id, baslik, yazi, tarih FROM icerik ORDER BY tarih DESC LIMIT 15") or die(mysql_error());
while ($icerik = mysql_fetch_array($sorgu)){
      
    echo '
       <item>
          <title>'.$icerik[baslik].'</title>
          <description><=!=[=C=D=A=T=A=[
          '.$icerik[yazi].'
          ]=]=></description>
          <link>http://siteniz.com/yazi.php?id='.$icerik[id].'</link>
          <pubDate>'.$icerik[tarih].' GMT</pubDate>
      </item>';
}
echo '</channel>
</rss>';
?>