1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Remove RSS Links

Discussion in 'Cloaking and Content Generators' started by viper, Jan 17, 2008.

  1. viper

    viper Junior Member

    Joined:
    Nov 15, 2007
    Messages:
    165
    Likes Received:
    23
    maybe someone needs this. the code gets the rss xml feed and strips them. in this code;
    - i removed the links to external pages
    - i shuffled them so that they dun appear in their designated feed
    - $max_news will set the number of feeds i want to appear. setting it at 0 will display 1 feed
    - used them after a para or article so its like part of it.

    i didnt write the codes, amended it though to fit my needs. in fact i just started using them again with the crap that im facing. its in php.

    i apologise if it is wrong to be posting this. i would have attached it but the requirement for rep would make it very difficult for most to share. i shd know as im having difficulty downloading some of the interesting stuffs lately. anyways i hope its useful to someone.

    <?
    set_time_limit(0);

    $file = "http://url-of-xml";
    $max_news = 0;

    $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
    // $rssfeed = "<div class=\"channelname\"><strong>" . $rss_channel["TITLE"] . "</strong></div>";
    // $rssfeed = $rssfeed."<div class=\"channeldescription\"><strong>" . $rss_channel["DESCRIPTION"] . "</strong></div><br />";
    if (isset($rss_channel["ITEMS"])) {
    if (count($rss_channel["ITEMS"]) > 0) {
    shuffle($rss_channel["ITEMS"]);
    for($i = 0;$i < count($rss_channel["ITEMS"]);$i++) {
    if (isset($rss_channel["ITEMS"][$i]["LINK"])) {
    //print ("\n<div class=\"itemtitle\"><a href=\"" . $rss_channel["ITEMS"][$i]["LINK"] . "\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</a></div>");
    //print ("\n<div class=\"itemtitle\"><strong>" . $rss_channel["ITEMS"][$i]["TITLE"] . "</strong></div>");
    $rsstitle = "\n<div class=\"\"><strong>" . $rss_channel["ITEMS"][$i]["TITLE"] . "</strong></div>";
    } else {
    $rsstitle = "\n<div class=\"\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</div>";
    }
    $rssfeed = $rssfeed."<div class=\"\">" . $rss_channel["ITEMS"][$i]["DESCRIPTION"] . "</div><br />";

    if($i==$max_news){
    break;
    }

    }

    } else {
    $rssfeed = "<b>There are no articles in this feed.</b>";
    }


    }
    ?>