Mar
22

Php’ de RSS oluşturmak

Yazar Enes Pekkaya    Kategori Php     Etiketler ,

Rss oluşturmayı anlatmadan önce rss’ in ne olduğunu ve ne işe yaradığını anlatmakda fayda olacağını düşünmekteyim.

128px-feed-iconsvg

RSS NEDİR?

RSS, genellikle haber sağlayıcıları, bloglar ve podcastler tarafından kullanılan, yeni eklenen içeriğin kolaylıkla takip edilmesini sağlayan özel bir XML dosya formatıdır. Kullandığı dosya biçimleri .rss ve .xml’dir.

RSS kısaltmasının açılımı ve zaman içinde gelişimi şöyledir:

  • Rich Site Summary (RSS 0.91)
  • RDF Site Summary (RSS 0.9 and 1.0)
  • Really Simple Syndication (RSS 2.0.0)

Yani kısaca RSS, bizim takip etmek istediğimiz bir sayfanın eğer içeriğinde bir güncelleme olursa bize kısa yoldan haber verme mekanizması diyebiliriz.

Php’ de RSS Yapısı Oluşturmak :

size vereceğim örnekle ilgili bir fonksiyonumuz mevcut :


function cleanText($intext) {
return
html_entity_decode(
htmlspecialchars(
stripslashes($intext)));
}

yukarıdaki fonksiyon sayesinde veritabanımızdan gelecek olan verinin içinde xml (rss) yapısını bozacak özel karakterler var ise onları etkisiz hale getirecektir. Gene aşağıdaki kodda (rss.php) herhangi bir türkçe karakter sorununuz olmayacaktır 🙂


<?php

function cleanText($intext) {
return
html_entity_decode(
htmlspecialchars(
stripslashes($intext)));
}

header("Content-Type: text/xml;charset=utf-8");

$db = mysql_pconnect("sunucu","kullanıcı adı","şifre");

if (!$db)
{
error_log("Hata : Veritabanı bağlantısı yapılamadı !");
exit;
}

@mysql_select_db("veritabanı adı");

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci'");

$query1 = "SELECT id, baslik, aciklama, eklenme_tarihi FROM yazi ORDER BY addingDate DESC LIMIT 10";
$result1 = mysql_query($query1);
$phpversion = phpversion();
$root = "http://www.enespekkaya.com";

ECHO <<<END
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>EnesPekkaya.Com | En Son Eklenen 10 Yazı</title>
<link> http://www.enespekkaya.com </link>
<description>EnesPekkaya.Com sitesine eklenen son 10 yazıyı buradan takip edebilirsiniz.</description>
<language>tr</language>
<docs>$root/WebServices/rss.php</docs>
<generator>PHP/$phpversion</generator>
END;

for ($i = 0; $i < mysql_num_rows($result1); $i++) {
@$row = mysql_fetch_array($result1);
$title = cleanText($row&#91;"baslik"&#93;);
$link = $root ."index.php?id=". cleanText($row&#91;"id"&#93;);
$description = cleanText($row&#91;"aciklama"&#93;);
$guid = "tag:".$root;
$pubDate = date("r", strtotime($row&#91;"eklenme_tarihi"&#93;));

ECHO <<<END

<item>
<title>$title</title>
<link>$link</link>
<description>$description</description>
<pubDate>$pubDate</pubDate>
<guid isPermaLink="false">$guid</guid>
</item>
END;

}

ECHO <<<END

</channel>
</rss>
END;

?>

yukarıdaki yapıda değişiklik yapmanız gereken  yer, veritabanı bilgileri ve sql cümlesindeki yerlerdir.

Herkese hazır yoldan kod yazmalar 🙂

4 yorum bulunmaktadır - “Php’ de RSS oluşturmak”

  • Murat Şenkul 05 Mayıs 2013, 00:14

    İyi günler.Sitemde kurulu olan hazır scriptimin rss desteği yok. Php kod bilgim çok fazla yok ama anlıyorum biraz. dediklerinizi yaptım fakat benim sorunum şu kısımda ,

    for ($i = 0; $i < mysql_num_rows($result1); $i++) {
    @$row = mysql_fetch_array($result1);
    $title = cleanText($row["title"]);
    $link = $root ."index.php?id=". cleanText($row["id"]);
    $description = cleanText($row["description"]);
    $guid = "keyword:".$root;
    $pubDate = date("r", strtotime($row["addtime"]));

    Bana yardımcı olabilirmisiniz ?

  • Ömer Kadir Oruç 13 Mayıs 2013, 02:36

    title,id,addtime,description kısımları tablondaki alan adların murat

  • hakan 03 Haziran 2013, 07:34

    merhabalar
    “Parse error: syntax error, unexpected T_FUNCTION in /home4/hkncllk/alanyadobraemlak.com/rss.php on line 3”
    böyle bir hata alıyorum
    sitem yorum yaparken kullandıgım bilgilerde var.

  • Enes Pekkaya 03 Haziran 2013, 09:59

    merhabalar,

    line 3 de ne olduğunu yazabilirseniz yardımcı olmaya çalışayım.

Yorum Yapın

 

Twitter'dan Takip Et! Twitter'dan Takip Et!

Etiketler

Son Yazılar

Son Yorumlar

Haftanın Özlü Sözü

Akıllı bir adam yalnız kendi tecrübelerinden, çok akıllı bir adam başkalarının da tecrübelerinden yararlanır. (Çin Atasözü)

Bağlantılar

Arşivler