[PHP] Problème simple de fonctions

Problème simple de fonctions [PHP] - PHP - Programmation

Marsh Posté le 29-03-2003 à 00:00:06    

Voilà pour analyser un fichier XML j'utilise les fonctions expat et dans la partie startElement, je créé un tableau multidimensionnel qui au final contient toutes les valeurs de mes balises.
Le seul problème est que je n'arrive pas quand j'appelle la function analyse () à récupérer mon tableau pour le traiter après.
Car une fois sorti de la function startElement le tableau devient invisible et si je fait un return de mon tableau à la fin de startElement, je ne sais comment le récupérer dans analyse() pour ensuite faire le return général permettant de l'exploiter hors de la fonction analyse().
 
Voici le code d'une fonction approchante pour résumer le problème:
 

Code :
  1. <?php
  2. function analyse (){
  3. $file = "data.xml";
  4. function startElement($parser, $name, $attrs) {
  5. // endroit ou est créé mon tableau  
  6. // si je fait un print_r de mon tableau tout s'affiche bien
  7. return $monTableau;
  8. //mais ou je le récupère ???
  9. }
  10. function endElement($parser, $name) {
  11. }
  12. $xml_parser = xml_parser_create();
  13. xml_set_element_handler($xml_parser, "startElement", "endElement" );
  14. if (!($fp = fopen($file, "r" ))) {
  15.     die("could not open XML input" );
  16. }
  17. while ($data = fread($fp, 4096)) {
  18.     if (!xml_parse($xml_parser, $data, feof($fp))) {
  19.         die(sprintf("XML error: %s at line %d",
  20.                     xml_error_string(xml_get_error_code($xml_parser)),
  21.                     xml_get_current_line_number($xml_parser)));
  22.     }
  23. }
  24. xml_parser_free($xml_parser);
  25. }
  26. //Ici mon tableau n'est plus visible
  27. return $monTableau;
  28. //pour le réutiliser ensuite
  29. ?>


 


Message édité par Arrakis99 le 29-03-2003 à 01:25:10
Reply

Marsh Posté le 29-03-2003 à 00:00:06   

Reply

Marsh Posté le 29-03-2003 à 01:26:49    

[:yoyoz]  [:yoyoz]  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed