Visa ett inlägg
Oläst 2007-02-17, 15:37 #10
MattiasAs avatar
MattiasA MattiasA är inte uppkopplad
Medlem
 
Reg.datum: Dec 2006
Inlägg: 235
MattiasA MattiasA är inte uppkopplad
Medlem
MattiasAs avatar
 
Reg.datum: Dec 2006
Inlägg: 235
Denna har jag gjort
anropas med GET

lycka till, maila om du får problems
Kod:
<?php
 
set_time_limit(0);
 
$file = $_GET['file'];
 
$rss_channel = array();
$currently_writing = "";
$main = "";
$item_counter = 0;//ändra antalet nyheter, 0 är alla
 
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 "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 "ITEMS":
      if (isset($rss_channel[$main][$item_counter][$currently_writing])) {
        $rss_channel[$main][$item_counter][$currently_writing] .= $data;
      } else {//credits 2 matti4s
       $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 ("<div class=\"ruta\">\n");
 
if(strlen($rss_channel["TITLE"]) > 35)//antal max tecken på rubriken
  $rss_channel["TITLE"] = substr($rss_channel["TITLE"], 0, 32) . '...';//bryt efter 32 och lägg till ...
elseif(strlen($rss_channel["TITLE"]) < 2)//antal min tecken
  $rss_channel["TITLE"] = substr($rss_channel["TITLE"], 0, 2) . '...';//lägg till ...
print ("<h3>" . $rss_channel["TITLE"] . "</h3>\n");
 
if(strlen($rss_channel["DESCRIPTION"]) > 50)
  $rss_channel["DESCRIPTION"] = substr($rss_channel["DESCRIPTION"], 0, 47) . '...';
elseif(strlen($rss_channel["DESCRIPTION"]) < 2)
  $rss_channel["DESCRIPTION"] = substr($rss_channel["DESCRIPTION"], 0, 2) . '...';
print ("<h4>" . $rss_channel["DESCRIPTION"] . "</h4>\n");
 
print ("<ul>\n");
 
if (isset($rss_channel["ITEMS"])) 
{
  if (count($rss_channel["ITEMS"]) > 0) 
  {
   for($i = 0;$i < count($rss_channel["ITEMS"]);$i++) 
   {
     print ("\t<li><a href=\"" . $rss_channel["ITEMS"][$i]["LINK"] . "\" target=\"_blank\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</a>");
     print ("</li>\n");
   }
  } 
  else
   print ("<b>There are no articles in this feed.</b>");
}
print ("</ul>\n</div>\n");
?>
MattiasA är inte uppkopplad   Svara med citatSvara med citat