PHP ile Basit RSS Ayrıştırıcı

rss feed ayrıştırıcı İlk olarak kod yazmayı sevmeyen birisi olarak iş başa düşünce bilmediğim bir dilde bile olsa en basitinden işime yarayacak kodlar yazabiliyorum :) Şu ana kadar PHP dilinde echo “hello world”; bile yazmamış birisi olduğum halde ihtiyacıma uygun bir rss parser yazmış bulunmaktayım. Bir programlama dilini bilmeden nasıl o dilde kod yazdığımı merak edenler bir önceki blog yazım olan “Neden Ezberliyoruz Ki? başlıklı yazımı okuyabilirler. Gelelim esas konumuza:

Neden böyle birşey kodladım?
Bu yazıyı okuduğunuz sitenin alan adı blog.hasanhuseyincakir.com.tr‘dir. ancak ben bu sitenin barındığı esas alan adı olan hasanhuseyincakir.com.tr‘ye HTML5 / CSS3 ile tasarlanmış bir CV Template’ini kendime göre düzenleyip kurdum. Ancak bana göre bu CV template’inde birşeyler eksikti. Bu da blog’uma son yazdığım yazıların linklerinin özgeçmişimde görünmemesiydi. İşte bu yüzden ben de bu eksikliği gidermek için PHP ile Basit RSS Ayrıştırıcı‘yı kodladım.

Peki ne işe yarıyor bu zımbırtı?
Basit olarak rss feed’imi alıp son 5 yazının başlık ve linkini bu feed’den ayrıştırıp ekrana bastırıyor. Daha önce dediğim gibi php dilini bilmeden kodladığım için kod’un optimize edilmesi gerekiyor olabilir, bu konuda henüz birşey diyemem, ancak mantığı gayet basit. WordPress tarafından oluşturulan feed’de title tagları arasındaki başlıkları ve bu başlıklara ait link’leri çekiyor.

Fazla uzatmışım tamam hemen kodlara geliyorum:


<?php 
$rssfeed = file_get_contents("http://blog.hasanhuseyincakir.com.tr/feed/");
for($i=2;$i<7;$i++)
{
$parts = explode("<title>", $rssfeed);
$title = explode("</title>", $parts[$i]);
$links = explode("<link>",$rssfeed);
$link = explode("</link>",$links[$i]);
echo "<a href=\"";
echo $link&#91;0&#93;;
echo "\">";
echo $title[0]; 
echo "</a>";

echo "<br>";
}
?>

Peki bu kodun çıktısını nereden görebiliriz?
Özgeçmiş‘ime tıklayıp en alt kısma giderek nasıl durduğunu görebilirsiniz.

Bu basit ayrıştırıcıyı geliştirebilir, kullanabilir, dağıtabilir, paylaşabilirsiniz :)

Not: Bu basit rss ayrıştırıcı sadece wordpress feed’lerini ayrıştırmada kullanılabilir, diğer scriptlere ait rss feed’lerde çalışmayabilir.

Bölüm’den arkadaşım yorumunda Halit Alptekin simplexml diye birşeyden bahsetmiş hatta kodlamış :) Simplexml kodları ile yapılmış hali:

<?php
# buda benden
error_reporting(0);
set_time_limit(0);
header("content-type: text/html; charset=UTF-8");
class RSS
{
	var $url;
	
	function RSS ($url)
	{
		$this->url = $url;
	}
	
	function CEK ()
	{
		$rss_kod = array();
		$rss = simplexml_load_file($this->url);
		foreach ($rss->channel->item as $deger)
		{
			$baslik = $deger->title;
			$link = $deger->link;
			$rss_kod[] = '<a href="'.$link.'" target="_blank">'.$baslik.'</a><br />'; 
		}
		return $rss_kod;
	}
	
	function GOSTER ($adet)
	{
		$rss_kod = $this->CEK();
		for ($i=1; $i<=$adet; $i++)
		{
			echo ''.$i.': '.$rss_kod&#91;$i&#93;;
		}
	}
	
}

$rss_oku = new RSS('http://blog.hasanhuseyincakir.com.tr/feed/');
echo $rss_oku->GOSTER(5);
?>

3 comments on “PHP ile Basit RSS Ayrıştırıcı

    • inceledim onu ama benim yazdığım kod çok daha kısa sürüyor 😀 nesneye dayalı php mi öğrencem bu simplexml için bir de 😀

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir