Mailinglisten-Archive |
Hallo nochmal! Das Problem an der Sache ist aber, das meine Funktion nur einmal aufgerufen wird und der Wert der Variable INNERHALB der Funktion ueberschrieben wird. Die 'return' Anweisung uebergibt nur einen Wert, naemlich den letzten (der auch noch tollerweise null ist!). Ausserdem: Wenn ich '$test[] = meineFunktion(); echo $test;' schreibe, bekomme ich nur die Meldung Array. '$test[0]' (usw.) erhalten auch keine Werte ! ? Hier sind meine (abgespeckten) Scripte zum selberprobieren: 1.Das Php-Script: <?$file="http://localhost/test.xml"; function startElement($parser, $name, $attribs) { //print $name; //ergibt alle StartTags des XML-Dokuments (in diesem Beispiel wird $name mehrmals gedndert) $test = array($name); //print $test[0]; //ergibt alle StartTags, die anderen Indizes sind leer ... return $test; } function endElement ($parser, $name2) {} $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser,"startElement","endElement"); $fp =fopen($file, "r"); while ($data = fread($fp, 4096)) { xml_parse($xml_parser,$data); $test2 =startElement($parser, $name, $attribs); print $test2; //ergibt nur 'array', $test[0] ergibt gar nichts, wieso? } xml_parser_free($xml_parser);?> 2.Das XML Dokument (als test.xml speichern!): <?xml version="1.0" encoding='ISO-8859-1'?> <kunden> <kunde> <kdnr>0001</kdnr> </kunde> <kunde> <kdnr>0002</kdnr> </kunde> <kunde> <kdnr>0003</kdnr> </kunde> </kunden>
php::bar PHP Wiki - Listenarchive