Konuyu Oyla:
  • Toplam: 2 Oy - Ortalama: 1
  • 1
  • 2
  • 3
  • 4
  • 5
Php İle Rss (Xml) Okuma Nasıl olur?
#1
Php İle Rss (Xml) Okuma Nasıl olur?

Bu makalede php ile Rss'ten nasıl içerik çekebileceğimizi en basit haliyle sizlere aktarmaya çalışacağım. Rss ile içerik çekebilmek için php'nin simplexml kütüphanesini kullanacağız. İlk olarak dışarıdan veri okuyabilmek için php.ini dosyanızdan "allow_url_fopen" özelliğine "on" değerini atamanız gerekiyor. Php.ini dosyasını değiştirdikten sonra apache server'ı restart ediyoruz. Temel gereksinimden bahsettiğime göre artık örnek kodlar ile devam edebiliriz. :)

Sadece fonksiyon kullanımını ve aldığı parametreleri yazarak klasik bir yazı olsun istemiyorum. Çok fazla kod yazıp kafanızı da karıştırmak istemiyorum. :) En azından Php 5 nimetlerinden biraz faydalanmaya çalışalım ve bir tane sınıf yazalım. Oluşturduğumuz sınıfa rss adresini gönderdiğimizde içeriği okuyup bize geri döndüren basit bir sınıf olsun.

rss.php

PHP Kod:
// "Rss" isminden bir sınıf tanımlıyorum.
Class Rss
{
    
// "url" ve "data" isminde "private" tipinde 2 değişken tanımlıyorum.
    
private $url;
    private 
$data;

    
/* 
    "get" isminde bir fonksiyon tanımlıyorum.
    "url" isminde bir parametre alıyor.
    */
    
function get($url)
    {
        
/* 
        Sınıf içinde ki "url" değerine, 
        parametre olarak gönderilen "url" değerini atıyorum.
        */
        
$this->url $url;
        
        
//Sınıf içinde ki "getData" fonksiyonunu çağırıyorum.
        
$this->getData();
        
        
// Sınıf içinde ki "data" değerini geriye döndürüyorum.
        
return $this->data;
    }
    
    
    
//"getData" isminde bir fonksiyon tanımlıyorum.
    
function getData()
    {
        
// İstisna yakalamak için try kullanıyorum.
        
try
        {
            
/* 
            Gönderilen adreste bulunan xml içeriğini okuyorum.
            Sınıf içinde bulunan "data" değişkenine içeriği atıyorum.
            */
            
$result = @simplexml_load_file($this->url);
            if(
$result)
            {
                
$this->data $result;
            }
            else
            {
                throw new 
exception('RSS Kaynagi okunamiyor.');
            }
        }
        catch (
Exception $e)
        {
            
// İstisna oluşursa hatayı ekrana basıyorum ve script'i durduruyorum.
            
die($e->getMessage());
        }
    }


index.php (Başka isimde verebilirsiniz) :

PHP Kod:
<?php
// Türkçe karakter sorunu yaşamamak için utf charset tanımlıyorum.
header ('Content-type: text/html; charset=utf-8');

// Rss sınıfımızın olduğu dosyayı include ediyorum.
include_once 'rss.php';

// "Rss" sınıfımı tanımlıyorum.
$rss = new Rss;

/* 
"Rss" sınıfı içinde bulunan 
"get" fonksiyonuna 
"url" parametresini gönderiyorum.
*/
$data $rss->get('BURAYA RSS ADRESİ GELECEK');

// Gelen toplam haber sayısını buluyorum.
$total count($data->channel->item);
?>

<div class="haberler">
<?php
/* 
Haberleri yazdırmak için döngü kuruyorum.
*/
for($i 0$i $total$i++)
{
?>
    <div class="haber">
        <div class="baslik">
            <?php echo $data->channel->item[$i]->title ?>
        </div>
        <div class="detay">
            <?php echo $data->channel->item[$i]->description ?>
        </div>
        <div class="kaynak">
            <a href="<?php echo $data->channel->link?>" target="_blank">
            <?php echo $data->channel->title?>
            </a>
        </div>
    </div>
<?php
}
?>
</div> 

Yukarıda her satırda, hangi işlemi yaptığımı açıklamaya çalıştım. index.php dosyasında daha anlaşılır olması için çektiğimiz verileri bir döngü içine alıp listeledim. Gelen tüm içeriği görmek istiyorsanız print_r($data); ile obje içeriğini görüntüleyebilirsiniz.
Ara
Cevapla PGM
Teşekkür verenler:


Hızlı Menü:


Şu anda bu konuyu okuyanlar: 1 Ziyaretçi



500000 -

Online Shopping App
Online Shopping - E-Commerce Platform
Online Shopping - E-Commerce Platform
Feinunze Schmuck Jewelery Online Shopping