Get an RSS reader to E-Mail content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I am using the following script to keep me up to date from any computer in 
the world that has web access, but I would like to get it to automatically 
E-mail the content to my E-mail adress, here is what I have so far.

<?php


set_time_limit(0);

$file = "http://news.php.net/group.php?group=php.doc.tr&format=rss";;

$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>");
 print ("<div class=\"channeldescription\">" . $rss_channel["DESCRIPTION"] . 
"</div><br />");
if (isset($rss_channel["ITEMS"])) {
 if (count($rss_channel["ITEMS"]) > 0) {
  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>");
   } else {
   print ("\n<div class=\"itemtitle\">" . $rss_channel["ITEMS"][$i]["TITLE"] 
. "</div>");
   }
    print ("<div class=\"itemdescription\">" . 
$rss_channel["ITEMS"][$i]["DESCRIPTION"] . "</div><br />");   }
 } else {
  print ("<b>There are no articles in this feed.</b>");
 }
}

?>

Just to recapp, I want to get the information from the RSS feed e-mailed to 
my address.
Any help would be appriciated,
Thanks! 

-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux