Array_push dans case [Résolu]

Signaler
-
 Utilisateur anonyme -
Bonsoir,

Je voudrais faire un array_push dans une case, mais en vain :(

Voici mon code :

$tTitle = array ("");
$tArtiste = array ("");
// Ma propre fonction de traitement des balises ouvrantes
            function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
            {
                // En fait... nous nous conteterons de mémoriser le nom de la balise
                // afin d'en tenir compte dans la fonction "fonctionTexte"
        
                global $derniereBaliseRencontree;
        
                $derniereBaliseRencontree = $nomBalise;
            }
           
            // Ma propre fonction de traitement des balises fermantes
            function fonctionBaliseFermante($parseur, $nomBalise)
            {
                // On oublie la dernière balise rencontrée
                global $derniereBaliseRencontree;
        
                $derniereBaliseRencontree = "";
            }
        
            // Ma propre fonction de traitement du texte
            // qui est appelée par le "parseur"
            function fonctionTexte($parseur, $texte)
            {
                global $derniereBaliseRencontree;
                
                // Selon les cas, nous affichons le texte
                // ou nous proposons un lien
                // ATTENTION: Par défaut les noms des balises sont
                //            mises en majuscules
                                
                switch ($derniereBaliseRencontree) {
           
                 case "ARTIST":
     array_push($tArtiste,$texte);
                        break;
                        }
                  case "TITLE":
                
                        array_push($tTitle,$texte);
                        break;


                }        
            }
            // Création du parseur XML
            $parseurXML = xml_parser_create();
        
            // Je précise le nom des fonctions à appeler
            // lorsque des balises ouvrantes ou fermantes sont rencontrées
            xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
                                               , "fonctionBaliseFermante");
        
            // Je précise le nom de la fonction à appeler
            // lorsque du texte est rencontré
            xml_set_character_data_handler($parseurXML, "fonctionTexte");
        
            // Ouverture du fichier
            $fp = fopen($fichier, "r");
            if (!$fp) die("Impossible d'ouvrir le fichier XML");
        
            // Lecture ligne par ligne
            while ( $ligneXML = fgets($fp, 1024)) {
                // Analyse de la ligne
                // REM: feof($fp) retourne TRUE s'il s'agit de la dernière
                //      ligne du fichier.
                xml_parse($parseurXML, $ligneXML, feof($fp)) or
                    die("Erreur XML");
            }
            
            xml_parser_free($parseurXML);
            fclose($fp);


Pourquoi mon array-Push ne se fait pas ?

Merci pour vos pistes :)

Belle soirée,

A++

3 réponses

Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
13
Il te manque global $derniereBaliseRencontree,$tArtiste,$tTitle;
S.
Hello,

C'est exactement ca :)
Merci beaucoup !

A++
Hello,

Encore un petit soucis, quand j'ai un apostrophe dans mon titre alors que j'ai mis un addslashes :

[2] => I Don
[3] => \'
[4] => t Care

A quoi s'est du ?

function fonctionTexte($parseur, $texte)
            {
                global $derniereBaliseRencontree,$tArtiste,$tTitle;
                         
                switch ($derniereBaliseRencontree) {
                  case "ARTIST":
           array_push($tArtiste,addslashes($texte));
                        break;
                  case "TITLE":
                        array_push($tTitle,addslashes($texte));
                        break;
                }        
            }



Belle soirée,

A++