fav. | | Create free blog ( Türkçe , Deutsch , Español )

İnternetten Herşey | Paylaşımın Adresi

Aslantepe stadı,aslantepe resimler,frekanslar,dersler,eğitim,bedava banner yapımı,r10,webmaster,scriptler,databaseler,galatasaray,film,sinema Kısaca herşey burada

Php ile RSS’lerden Veri Çekmek ve Kaydetmek

Birçok yerde bunun nasıl yapıldığını öğrenmeye çalışan kullanıcılar görüyorum. Bunun üzerine sizlere php ile RSS içeriklerinden nasıl veri çekileceğini ve bunların nasıl veritabanına kaydedilebileceğine dair örnek uygulama vereceğim.

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.

 

HTML Kodu
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:

 

HTML Kodu:
<?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.

Kaynak:

Sponsorlarımız SiteEkle.Web.Tr
Fıkralaralemi Şarkı sözleri | KaraTren.Org - Güncel Paylaşım Mekanıblogger eklentileri toplist
haber
Projeksiyon