• Welcome to NamesLot.com Domain Name Forum

    NamesLot.com Domain Name Forum offers a fully open forum to discuss domain industry news and a 0% commission marketplace for you to buy and sell domain names.

    We have reorganized our Marketplace so now it is easier to get attention to your domain while it is also easier for buyers to find the right domain name.

    If you want us to add more threads to our marketplace, please contact us! Listing on our marketplace as always, 100% free! Register NOW or Login HERE!

php RSS to HTML code

  • Thread starter Thread starter nick
  • Start date Start date
Status
Not open for further replies.
N

nick

Guest
Here is a small piece of code that helps to fetch the RSS feeds from a given URL and parse it into HTML output.

PHP:
<?php
set_time_limit(0);
//Enter the URL of RSS feed in the line below
$file = "PUT YOUR RSS FEEDS URL HERE";
$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 {
$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 HTML
if (isset($rss_channel["ITEMS"]))
{
echo "<font face='Verdana' size='2' color='#333333'>";
if (count($rss_channel["ITEMS"]) > 0)
{
for($i = 0;$i < count($rss_channel["ITEMS"]);$i++)
{
if (isset($rss_channel["ITEMS"][$i]["LINK"]))
{
echo "<a href=\"" . $rss_channel["ITEMS"][$i]["LINK"] . "\">" . 
$rss_channel["ITEMS"][$i]["TITLE"] . "</a><br>";
}
else
{
echo $rss_channel["ITEMS"][$i]["TITLE"];
}
echo $rss_channel["ITEMS"][$i]["DESCRIPTION"] . "<p>&nbsp;</p>";
}
}
else
{
echo "<b>There are no articles in this feed.</b>";
}
echo "</font>";
}
?>

The above code is not mine. But it is a free code to use. You will be able to convert the RSS into HTML with this code.
 
Thanks nick,
this is really nice script as i m learning PHP it will help me to know some new feature of PHP.
i have copied it and will take a look of it.
 
In real it is using fsockopen to fetch the file.

Using arrays to store the data fetched from the file and then loops to walk through that array.
 
Status
Not open for further replies.

Members online

No members online now.

Forum statistics

Threads
19,833
Messages
69,830
Members
44,590
Latest member
KRS_Infotech
Active members today
4
New members today
1
New threads today
19
New posts today
19

Follow NamesLot on Twitter!

NamesLot proudly supported by

NamesLot proudly supported by

Top