Szukałem szukałem i nie znalazłem nic na ten temat.
Problem wygląda następująco. Mam pewien system który za pomocą xml_parser()" title="Zobacz w manualu PHP" target="_manual parsuje pliki xml z danymi.
Cały kod:
<?php $this->parser = xml_parser_create("UTF-8"); xml_set_object($this->parser, $this); xml_set_element_handler($this->parser, 'startXML', 'endXML'); xml_set_character_data_handler($this->parser, 'charXML'); xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false); xml_parser_set_option($this->parser, XML_OPTION_TARGET_ENCODING, "UTF-8"); xml_parser_set_option($this->parser, XML_OPTION_SKIP_WHITE,1); $this->error("Cannot open {$this->url}"); } $endLine = false; { $line = ''; for ($i=0; $i<20; $i++) { $endLine = true; break 1; } } { xml_get_current_line_number($this->parser), xml_get_current_column_number($this->parser)), $line); } } ?>
Przy małych plikach np 2,3,5 mb (1000-3000 linii) wszystko wygląda dobrze, jednak w przypadku gdy plik ma np 100 mb. (100 000 linii) Albo pobiera tylko część np pierwsze 100 linii, albo po prostu nie uruchamia się i wyświetla się biały ekran.
Oczywiście podanie na początku
<?php ?>
nic nie daje. Czy metoda xml_parser() posiada jakieś ograniczenia. Co może być przyczyną tego nie mogę parsować dużych plików ?