How to convert rss to html code ...

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • marko13
    Confirmed User
    • Apr 2004
    • 7512

    #1

    How to convert rss to html code ...

    and that to be similar to rss-to-javascript.com ....



    anyone know?????
    We are responsible for your hosting ... Enjoy in your life.
    Shared hosting from $3.95 Europe Linux VPS plans from $11.37
    http://www.LVPSHosting.com
  • xsabn
    Confirmed User
    • Feb 2007
    • 2815

    #2
    PHP Code:
    <?php
    set_time_limit(0);
    // rss.php
    
    $file = "http://www.url-to-yourr-rss-file.com/rss/blabla/";
    
    $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
    // print ("<div class=\"channelname\">" . $rss_channel["TITLE"] . "</div>");
    
    if (isset($rss_channel["ITEMS"])) {
        if (count($rss_channel["ITEMS"]) > 12) {$NumberOfItems = 12;}
            else {$NumberOfItems = count($rss_channel["ITEMS"]);}
             for($i = 0;$i < $NumberOfItems;$i++) {
               if (isset($rss_channel["ITEMS"][$i]["LINK"])) {
                print ("\n<div class=\"ftitle\"><a href=\"" . $rss_channel["ITEMS"][$i]["LINK"] . "\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</a></div>");
                } else {
                print ("\n<div class=\"ftitle\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</div>");
                }
                 print ("<div class=\"fdescription\"><p>" . $rss_channel["ITEMS"][$i]["DESCRIPTION"] . "</p></div>");         }
        } 
    
    else {
            print ("<b>There are no girls online right now.</b>");
        }
    
    ?>

    This is a simple php script that i used.
    There is no caching, also you can limit how many items you want to display, just find

    PHP Code:
    (count($rss_channel["ITEMS"]) > 12) {$NumberOfItems = 12;} 
    

    Comment

    • candyflip
      Carpe Visio
      • Jul 2002
      • 43069

      #3
      Nice bit of code. Thanks.

      Spend you some brain.
      Email Me

      Comment

      Working...