Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 15-06-2005, 11:14
icesnake
 Registrierter Benutzer
Links : Onlinestatus : icesnake ist offline
Registriert seit: Sep 2002
Beiträge: 15
icesnake ist zur Zeit noch ein unbeschriebenes Blatt
Standard xml parsen mit php (sorry)

guten morgen liebe profis

ich bin auf dieser materie ein ganz grosser newbie und such auf diesem wege hilfe. ich möchte gerne ein rss-file mittels php script auslesen. zu diesem zweck, habe ich mir ein "parser-script" kopiert und kleinere anpassungen gemacht. leider funktioniert das auslesen überhaupt nicht. der code wäre:


<?php
$url="http://www.all-porsche.info/blog/wp-rss2.php";
// Enter the url to an RSS feed

$data=@fread(fopen("$url","r"),10000) or die("Cant open $url!");
// Get the file contents

$myar=getXmlData($data);
// What ever it may be, the argument to this
// function should be the XML document's content


// Now $myar holds the fully parsed XML contents.
// It may have a number of tags, like <TITLE> , <LINK> , <AUTHOR> , <SOMETHING> ... and so on
// With a simple loop, you can extract all the tags and their values neatly

// Remember, $i<= should be lesser than or equal to the number of values
// a tag has. If you give count($myar), it will only take the number of tags.
// See structure.txt for better understanding.


for($i=0;$i<=count($myar[TITLE]);$i++) {

// Here, we want to read the TITLE, DESCRIPTION, and LINK of the RSS feed.
// You can read the values of any tag like this.
// $myar[TITLE][$i], $myar[SOMETHING][$i], $myar[SOMETAG][$i].... and so on..
// Here it goes

$title=$myar[TITLE][$i];
$text=$myar[DESCRIPTION][$i];
$link=$myar[LINK][$i];

if($title) {
echo <<<EOF
<a href="$link"><font size="2" face="Verdana" color="blue">$title</font></a><br>
<font size="2" face="Verdana">$text</font><br><br>
<hr width="50%" size="1" align="left">
EOF;
}

}



//#####################################################################

// This is the function. It returns the array of the parsed XML data

function getXmlData($xml_doc) {

$n=0; // Counter used for arraying the XML data
$ar=array(); // The main array for storing parsed xml using xml_parse_into_struct()

// Parse the XML document
$parser = xml_parser_create();
xml_parse_into_struct($parser,$xml_doc,$vals,$index) or die(xml_error_string(xml_get_error_code($parser)));
xml_parser_free($parser);


$ttags=array(); // Temporary arry for storing tag names


// The main part. This is MY CREATION
// and this piece of code makes this script simple
// This is the "MAGIC LOOP" !!

for($n=0;$n<=count($vals)-1;$n++) {
if(trim($vals[$n][value])) {
$ar[$vals[$n][tag]][count($ar[$vals[$n][tag]])]=$vals[$n][value];
$ttags[$vals[$n][tag]]=$vals[$n][tag];
}
}


// Array for storing all the tag names
// This array will hold all the Tag names found in the XML document
// eg: ("TITLE","LINK","AUTHOR","DOMAIN")..
// Use this if you need it.

$tags=array();

// Extract and save the tag names to the array
foreach($ttags as $tagi) { array_push($tags,$tagi); }

return $ar;

}

?>


ich habe den code in die "inhalt.php" gepackt und jedes mal wenn ich diese "manuell" aufrufe (mittels browser) kommt diese fehlermeldung:

Cant open http://www.all-porsche.info/blog/wp-rss2.php!

kann mir jemand von euch sagen, wo denn der fehler liegt? habe ich was vergessen?

ich weiss, diese frage ist sicherlich schon ein paar mal gekommen, habe auch das forum durchsucht (soweit meine bescheidenen kenntnisse ausreichen). habe jedoch keine antwort gefunden.

besten dank für euer entgegenkommen.
Mit Zitat antworten