В PHP xmlparser, почему я не могу сохранить глобальный из моего character_data_handler ()? - PullRequest
0 голосов
/ 02 марта 2010

(или Вот основные положения кода:

$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??
    }
}

Я пытаюсь добавить путь к хосту таким образом, чтобы создать однострочный URL, потому что xmlparse ставит новую строку после каждого эха. Поэтому, если кто-нибудь скажет мне, как предотвратить перенос строки, это решит и мою проблему!

Кстати:

  • Я также попытался сослаться на суперглобальный $ GLOBALS ['host'] с тем же результатом
  • У меня есть только PHP4, доступный на моем хост-сервере (, иначе я бы использовал SimpleXML )

Спасибо, боб

1 Ответ

0 голосов
/ 02 марта 2010

Попробуйте использовать суперглобальный $ GLOBALS ['host'] быстрее. Вот ваш фиксированный код

$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;      
    }
}
...