Php ile Rss Veri Çekme ve Ekrana Yazdırma

Merhaba Arkadaşlar, Bu dersimizde php ile bir sitenin rss verilerini çekmeyi öğreneceğiz. Rss ‘ nin veri uzantısı xml’dir. file_get_contents komutu ile xml dosyamızı değişkene alıp verilerimizi yazdırıyoruz. Mantığı kolay. Google chrome eklenti yazmak amacıyla bu metotu araştırmıştım sizinle de paylaşmak istedim. Umarım yararlı olur.

ilk Önce Size php dosyamızda kullanacağımız kodları verelim.
Aşağıdaki file_get_contents metotu ile rss adresimizi çekiyoruz. WordPress scripti kullanan sitelerde genelde aşağıdaki gibi rss link yapısı olur. Bu linkteki verileri $feed değişkenine atıyoruz.

$feed = file_get_contents("http://www.atknuludag.com/feed/");

Burda yeni bir element oluşturuyoruz.

$xml= new SimpleXMLElement($feed);

Xml verisindeki tüm verileri çekmek için sayaç belirleyip arttırmak amacı ile $sayac adında bir değişken atadık.

$sayac="1";

Aşağıdaki kodda ise kaç adet rss okuyacak onu belirliyoruz.

$limit="10";

Aşağıdaki kodda ise xml değişkenindeki tagları arasındaki veriyi çekiyoruz tek tek. Bu tag’lar herkesde aynı olacak diye bir kayda yok. Orayı kendinize göre değiştirebilirsiniz.

foreach ($xml -> channel -> item as $veri){

Burdada yine tagındaki arasındaki yazıyı çekiyoruz. substr kodu ile ilk 150 karakteri çekiyoruz. Altında ise yine tagları arasındaki link tag’ını çekiyoruz.

$desc= $veri -> description;
$desc=substr($desc,0,150);
$link = $veri -> link;
$title= $veri -> title;

Daha sonra str_replace kodu ile title’deki ÄŸ olarak görünen ama normalde “ğ” olan karakteri çeviriyoruz.

$baslik = str_replace("ÄŸ", "ğ", $title); 

Kodlarımızın açıklamaları bu kadar. Şimdi aşağıda tüm kodları veriyorum.

<?php
function rssoku() 
{	
	$feed = file_get_contents("http://www.atknuludag.com/feed/");
	$xml= new SimpleXMLElement($feed);
	$sayac="1";
	// Okuma sınırı
	$limit="10";
	foreach ($xml -> channel -> item as $veri){
		if ($sayac <= $limit){ 
		$desc= $veri -> description;
		$desc=substr($desc,0,150);
		$link = $veri -> link;
		$title= $veri -> title;
$baslik = str_replace("ÄŸ", "ğ", $title); 
$baslik = str_replace("Äz", "Ğ", $baslik); 
$baslik = str_replace("ü", "ü", $baslik); 
$baslik = str_replace("Ãœ", "Ü", $baslik); 
$baslik = str_replace("ÅŸ", "ş", $baslik); 
$baslik = str_replace("Åz", "Ş", $baslik); 
$baslik = str_replace("Ä°", "İ", $baslik); 
$baslik = str_replace("ı", "ı", $baslik); 
$baslik = str_replace("ö", "ö", $baslik); 
$baslik = str_replace("Ö", "Ö", $baslik); 
$baslik = str_replace("ç", "ç", $baslik); 
$baslik = str_replace("Ç", "Ç", $baslik); 
$baslik = str_replace("–", "-", $baslik);
$baslik = str_replace("‘ ", "'", $baslik);
$baslik = str_replace("′", "'", $baslik);

$aciklama = str_replace("ÄŸ", "ğ", $desc); 
$aciklama = str_replace("Äz", "Ğ", $aciklama); 
$aciklama = str_replace("ü", "ü", $aciklama); 
$aciklama = str_replace("Ãœ", "Ü", $aciklama); 
$aciklama = str_replace("ÅŸ", "ş", $aciklama); 
$aciklama = str_replace("Åz", "Ş", $aciklama); 
$aciklama = str_replace("Ä°", "İ", $aciklama); 
$aciklama = str_replace("ı", "ı", $aciklama); 
$aciklama = str_replace("ö", "ö", $aciklama); 
$aciklama = str_replace("Ö", "Ö", $aciklama); 
$aciklama = str_replace("ç", "ç", $aciklama); 
$aciklama = str_replace("Ç", "Ç", $aciklama); 
$aciklama = str_replace("–", "-", $aciklama);
$aciklama = str_replace("‘ ", "'", $aciklama);
$aciklama = str_replace("′", "'", $aciklama);
        echo "
		<html>
		<head>
		<title>AtknUludag.Com Son Makaleler</title>
<style>
body {background : url('http://i.imgur.com/EkVzS.png') repeat #EEE;color : #535252;background-position : 0% -64px;
font:100% 'Segoe UI';
} 
.konular {
font-size: 14px;
background: #ffff ;
padding: 7px;
border: 1px solid #c0c0c0;
text-align: justify;
padding: 5px 5px 5px 5px;    
}
.konular ul li {padding: 5px; border-bottom: 1px solid #ddd; overflow: auto}
.baslik {color:black}
		</style>
		</head>
		<body>
		<div class='konular'>
		<li><div class='baslik'><a target=\"_blank\" rel=\"nofollow\" href=\"$link\" title=\"$baslik\">$baslik</a></div><br />
		<p>$aciklama ...</p></li>
		</div>
		</body>
		</html>
		";
		
		}
	$sayac++;
	}
}
rssoku();
?>

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.