Uygulamamız oldukça kolay ve anlaşılabilir şekilde kodlanacaktır. Farklı şekillerde oluşturulmuş xml veya rssler’e örneği baz alarak kolayca geliştirebileceğinizi düşünüyorum.
Şimdi geçelim php ile rsslerden veri çekmeye. Öncelikle bir veritabanı oluşturuyoruz.
CREATE TABLE `icerik` ( `id` int(8) NOT NULL auto_increment, `url` text NOT NULL, `baslik` text NOT NULL, `haber` text NOT NULL, UNIQUE KEY `id` (`id`), UNIQUE KEY `url` (`url`(850)) ) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;Rss’den verileri cekip yukarıda oluşturduğumuz veritabanına kayıt işlemine gerçekleştirecek php kodumuz:
<?
include "ayar.php";
?>
<?
function cevir ($url,$to="windows-1254",$from="utf8") {
if($to=="windows-1254" && $from=="utf8"){
$str_array = array(
chr(196).chr(177) => chr(253),
chr(196).chr(176) => chr(221),
chr(195).chr(182) => chr(246),
chr(195).chr(150) => chr(214),
chr(195).chr(167) => chr(231),
chr(195).chr(135) => chr(199),
chr(197).chr(159) => chr(254),
chr(197).chr(158) => chr(222),
chr(196).chr(159) => chr(240),
chr(196).chr(158) => chr(208),
chr(195).chr(188) => chr(252),
chr(195).chr(156) => chr(220)
);
return str_replace(array_keys($str_array), array_values($str_array), $url);
}
return $url;
}
$f = "http://rss.hurriyet.com.tr/rss.aspx?sectionId=1";
$data=file_get_contents($f);
$bol = explode("<item>",$data);
for ($i=1;$i<=count($bol)-1;$i++) {
preg_match("''si",$bol[$i], $baslik);
preg_match("'
<link>(.*?)</link>'si",$bol[$i], $link);
preg_match("'<description>(.*?)</description>'si",$bol[$i], $aciklama);
$link= $link[1];
$baslik = cevir($baslik[1]);
$aciklama = cevir($aciklama[1]);
echo "Link: ".$link."
Başlık: ".$baslik."
Açıklama: ".$aciklama."
";
$kayit = mysql_query("INSERT INTO icerik (id, url, baslik, haber) VALUES ('', '$link', '$baslik', '$aciklama')");
}
?>Koda İlişkin Açıklamalar:ayar.php dosyamız veritabanına bağlantının gerçekleştiği dosya olacaktır. Bunu scriptinize göre düzenleyebilirsiniz.
Burada örnek olarak hürriyet.com.tr’den bir rss kaynağını gösterdim.
İstediğiniz rss adresini $f = “http://rss.hurriyet.com.tr/rss.aspx?sectionId=1″; bölümünü düzenleyerek oluşturabilirsiniz.
Yukarıda yazmış olduğum kod ile rss’de yer alan title, link ve description alanları çekilebilmektedir. Kullanacağınız rss’nin kaynak kodlarına bakarak kendinize göre düzenlemeler yapabilirsiniz. RSS’lerde Türkçe Karakter problemi yaşayabilirsiniz diye de function cevir bölümü ile rss’den aldığımız içeriği çeviriyoruz ve daha sonra oluşturmuş olduğumuzu veritabanına kaydetmesini sağlıyoruz.
Bu şekilde hazırlamış olduğunuz dosyayı cronjob ile zamanlı olarak otomatik olarak çalıştırılmasını sağlayarak içeriğinizi sürekli olarak güncel tutulmasını sağlayabilirsiniz.
Daha sonra birden fazla RSS kaynağını kullanarak tek bir dosya üzerinden nasıl veriçekebileceğimize dair örneği yayınlayacağım.
Kolay gelsin.
ALıntıdır: