IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Traiter le texte d'un fichier Xml comme variable Php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 27
    Par défaut [Tableaux] Traiter le texte d'un fichier Xml comme variable Php
    Bonjour,
    Je souhaite créer un dictionnaire à partir d'une base textuelle.
    Avant de programmer en php pour décompter les mots etc... j'ai besoin de passer un fichier xml en variable php.
    J'ouvre mon fichier xml pour le parser.
    J'utilise array_push() pour affecter la valeur de chaque ligne à la variable $text (un tableau) : mais j'obtiens un message d'erreur.
    Warning: array_push() [function.array-push]: First argument should be an array in C:\wamp\www\query.php on line 25

    Je ne vois pas ou se trouve le pb. Merci pour votre aide !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $fichier = "interventions.xml";
    $text0= array();
    function fonctionTexte($parseur, $data)    
    	{ //echo $data;
    	   array_push($text0, $data); 
                 }           
    $parseurXML = xml_parser_create();    
    xml_set_character_data_handler($parseurXML, "fonctionTexte");  
    $fp = fopen($fichier, "r") or die("Impossible d'ouvrir le fichier XML");
    while ( $ligneXML = fgets($fp, 1024)) 
    {    
    xml_parse($parseurXML, $ligneXML, feof($fp)) or die("Erreur XML");
    }
    xml_parser_free($parseurXML);

  2. #2
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    salut,
    tu fais référence à $text0 dans ta fonction. Mais une fonction a son propre espace de nom, si bien qu'il faut lui indiquer où se trouve cette variable.
    Soit tu la passes en paramètre, soit tu peux utiliser le mot global comme ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function fonctionTexte($parseur, $data){
         global $text0;
         array_push($text0, $data); 
    }
    J'ai pas testé mais ça devrait fonctionné...
    pour plus d'infos , la FAQ : http://php.developpez.com/faq/index....depuisfonction

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 27
    Par défaut message d'erreur
    merci pour ce rappel sur la déclaration de la portée de la variable.
    Mais celà ne change rien au message d'erreur,
    y a-t-il d'autres pistes ?
    Merci !

  4. #4
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    ce code fonctionne chez moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $test = "test";
    $text0= array();
    function fonctionTexte($data){
    	global $text0;
    	array_push($text0, $data); 
    }  
    fonctionTexte($test);
    print_r($text0);
    ?>
    Pourquoi passer la variable parseur dans ta fonction, alors que tu ne l'utilises pas?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 27
    Par défaut super !
    merci julien.63 !
    je parviens à obtenir le tableau.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un fichier XML comme un fichier texte
    Par _jey_ dans le forum Langage
    Réponses: 5
    Dernier message: 06/08/2009, 18h15
  2. Réponses: 4
    Dernier message: 22/11/2008, 08h28
  3. [XML] retour à la ligne dans le texte d'un fichier xml?
    Par shyashah dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 24/04/2007, 09h41
  4. [FLASH 8] Text dynamique dans fichier .xml
    Par scorrom dans le forum Flash
    Réponses: 3
    Dernier message: 14/01/2007, 17h54
  5. Récupérer du texte d'un fichier xml entre deux balises
    Par manutudescends dans le forum Format d'échange (XML, JSON...)
    Réponses: 24
    Dernier message: 30/11/2005, 18h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo