2010-03-02 3 views
0

(ou Voici l'essentiel de code:En PHP xmlparser, pourquoi je ne peux pas stocker un global de mon character_data_handler()?

$host = ""; 
... 
xml_set_character_data_handler($xmlparser, "tagContents"); 
... 
function tagContents($parser, $data) { 
    global $current; 
    global $host; 
    if ($current == "HOST") { 
     $host = $data;   // Trying to store a global here 
    } 
    if ($current == "PATH") { 
     echo $host.$data;  // But its null when I get here. WHY?? 
    } 
} 

Je suis en train d'ajouter le chemin d'accueillir comme celui-ci pour créer une URL d'une ligne, car xmlparse met un saut de ligne après chaque écho donc tour à tour, si quelqu'un. pourrait me dire comment empêcher le saut de ligne, cela résoudrait mon problème aussi

Soit dit en passant:

  • J'ai aussi essayé faisant référence à la GLOBALS super-globale $ [ « host »] avec le même résultat
  • Je n'ai PHP4 disponible à partir de mon serveur hôte (otherwise I'd use SimpleXML)

Merci, bob

Répondre

0

Essayez d'utiliser superglobales $ GLOBALS [ 'host'] son ​​plus rapide de toute façon. Voici votre code fixe

$host = ""; 
... 
xml_set_character_data_handler($xmlparser, "tagContents"); 
... 
function tagContents($parser, $data) 
{ 
    global $current; 

    if ($current == "HOST") { 
     $GLOBALS['host'] = $data;   // Trying to store a global here 
    } 
    if ($current == "PATH") { 
     echo $GLOBALS['host'].$data;  
    } 
} 
+0

Merci, mais j'avais aussi essayé avec les mêmes résultats. –

Questions connexes