Anasayfa > Hazır Kodlar > PHP > RSS Feed Okuma
Makaleye verilen puanlar

RSS Feed Okuma




<?php

/* PHP RSS Reader v1.1

By Richard James Kendall 

Bugs to richard@richardjameskendall.com 

Free to use, please acknowledge me 



Place the URL of an RSS feed in the $file variable.



The $rss_channel array will be filled with data from the feed,

every RSS feed is different by by and large it should contain:



Array {

[TITLE] = feed title

[DESCRIPTION] = feed description

[LINK] = link to their website



[IMAGE] = Array {

[URL] = url of image

[DESCRIPTION] = alt text of image

}



[ITEMS] = Array {

[0] = Array {

[TITLE] = item title

[DESCRIPTION] = item description

[LINK = a link to the story

}

.

.

.

}

}



By default it retrives the Reuters Oddly Enough RSS feed. The data is put into the array

structure so you can format the information as you see fit.

*/

set_time_limit(0);

$file = "rss adresi";

$rss_channel = array();
$currently_writing = "";

$main = "";

$item_counter = 0;

function startElement($parser, $name, $attrs) {

global $rss_channel, $currently_writing, $main;

switch($name) {

case "RSS":

case "RDF:RDF":

case "ITEMS":

$currently_writing = "";

break;

case "CHANNEL":

$main = "CHANNEL";

break;

case "IMAGE":

$main = "IMAGE";

$rss_channel["IMAGE"] = array();

break;

case "ITEM":

$main = "ITEMS";

break;

default:

$currently_writing = $name;

break;

}

}

function endElement($parser, $name) {

global $rss_channel, $currently_writing, $item_counter;

$currently_writing = "";

if ($name == "ITEM") {

$item_counter++;

}

}

function characterData($parser, $data) {

global $rss_channel, $currently_writing, $main, $item_counter;

if ($currently_writing != "") {

switch($main) {

case "CHANNEL":

if (isset($rss_channel[$currently_writing])) {

$rss_channel[$currently_writing] .= $data;

} else {

$rss_channel[$currently_writing] = $data;

}

break;

case "IMAGE":

if (isset($rss_channel[$main][$currently_writing])) {

$rss_channel[$main][$currently_writing] .= $data;

} else {

$rss_channel[$main][$currently_writing] = $data;

}

break;

case "ITEMS":

if (isset($rss_channel[$main][$item_counter][$currently_writing])) {

$rss_channel[$main][$item_counter][$currently_writing] .= $data;

} else {

//print ("rss_channel[$main][$item_counter][$currently_writing] = $data<br>");

$rss_channel[$main][$item_counter][$currently_writing] = $data;

}

break;

}

}

}

$xml_parser = xml_parser_create();

xml_set_element_handler($xml_parser, "startElement", "endElement");

xml_set_character_data_handler($xml_parser, "characterData");

if (!($fp = fopen($file, "r"))) {

die("could not open XML input");

}

while ($data = fread($fp, 4096)) {

if (!xml_parse($xml_parser, $data, feof($fp))) {

die(sprintf("XML error: %s at line %d",

xml_error_string(xml_get_error_code($xml_parser)),  

xml_get_current_line_number($xml_parser)));

}

}

xml_parser_free($xml_parser);

// output as HTML

print ("<html><head><title>PHP RSS Reader</title></head><body>");

if (isset($rss_channel["IMAGE"])) {

print ("<a href=\"" . $rss_channel["LINK"] . "\" target=\"_blank\"><img border=\"0\" src=\"" . $rss_channel["IMAGE"]["URL"] . "\" align=\"middle\" alt=\"" . $rss_channel["IMAGE"]["TITLE"] . "\"></a>  <font size=\"5\">" . $rss_channel["TITLE"] . "</font><br><br>");

} else {

print ("<font size=\"5\">" . $rss_channel["TITLE"] . "</font><br><br>");

}

print ("<i>" . $rss_channel["DESCRIPTION"] . "</i><br><br>");

if (isset($rss_channel["ITEMS"])) {

if (count($rss_channel["ITEMS"]) > 0) {

for($i = 0;$i < count($rss_channel["ITEMS"]);$i++) {

print ("\n<table width=\"100%\" border=\"1\"><tr><td width=\"100%\"><a href=\"" . $rss_channel["ITEMS"][$i]["LINK"] . "\" target=\"_blank\"><h2>" . $rss_channel["ITEMS"][$i]["TITLE"] . "</h2></a></b>");

print ("<i>" . html_entity_decode($rss_channel["ITEMS"][$i]["DESCRIPTION"]) . "</i>");

print ("</td></tr></table><br>");

}

} else {

print ("<b>There are no articles in this feed.</b>");

}

}

print ("</body></html>");

?>

Bu makale hakkında ek bilgi eklemek için buraya tıklayınız

Bu makalenin yazar yada kaynağını bildirmek için tıklayınız.

Digg this Post! Add Post to del.icio.us Bookmark Post in Technorati Furl this Post!
Eklenme tarihi: 12-8-2006  Okunma: 1944

Bu Makaleye Verilen Puan:    Makaleye verilen puanlar
Bu Makaleye Puan Ver  

Bölüm Başlık Kullanıcı Yorumları


Bu makaleye yorum gönderilmemiş, ilk yorumu sen gönder !
Reklam Netinternet
Bazı hakları saklıdır: İçeriğin editör ve yazarlarımız tarafından oluşturulan kısımları ve site tasarımının hakkı saklıdır.  Bu sayfa en iyi 1280x1024 ve 1024x768 çözünürlükte izlenir.
Powered by BilgiPortal v2.2
Emlak Yorumlar Müzik estetik