|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2000-11-22 05:40 UTC] marek dot berkan at e-point dot pl
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 15:00:01 2025 UTC |
I have an object that implement XML parser. One of its' method is called when parser found start tag. If I use in this method functions who operating on associative array (i.e. each, next or current) that PHP engine run to end of this method and stopping. If I don't use flush() function in script then no content is sending to client. So if I use flush function then content generated before is sending. There is some example: class XMLParser { var $parser; var $depth; function XMLParser () { $depth = array(); $this->parser = xml_parser_create(); xml_set_object($this->parser,$this); xml_set_element_handler($this->parser,"open_tag","close_tag"); xml_set_character_data_handler($this->parser,"cdata"); } function open_tag($parser, $tag, $attrs) { echo "Before"; flush(); $atrybuty = array(); $atrybuty["klucz1"] = "wartosc1"; $atrybuty["klucz2"] = "wartosc2"; reset($atrybuty); while (list($klucz, $wartosc) = each ($atrybuty)) { echo $klucz." => ".$wartosc.", "; } echo "After"; flush(); } function close_tag($parser, $tag) { ... } function cdata($parser, $cdata) { ... } function parseFile($data) { xml_parse($this->parser,$data); } } // end of XMLParser object $test = new XMLParser(); // create object $test->parseFile('<A ID="hallo">PHP</A>'); // start parser