Array_push dans case [Résolu]

Utilisateur anonyme - 15 déc. 2009 à 22:29 - Dernière réponse :  Utilisateur anonyme
- 17 déc. 2009 à 18:50
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++
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
syndrael 2382 Messages postés lundi 4 février 2002Date d'inscription 29 décembre 2012 Dernière intervention - 16 déc. 2009 à 09:25
3
Merci
Il te manque global $derniereBaliseRencontree,$tArtiste,$tTitle;
S.

Merci syndrael 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de syndrael
0
Merci
Hello,

C'est exactement ca :)
Merci beaucoup !

A++
Commenter la réponse de Utilisateur anonyme
0
Merci
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++
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.