XMLReader не может открывать большие (> 2gb) XML-файлы

Я написал приложение, которое анализирует большие XML-файлы в PHP с помощью XMLReader.

Как правило, приложение отлично работает, EXCEPT, когда я пытаюсь прочитать файл размером более 2 гб.

(Я не понял точно, где находится отсечка, он работает безупречно в файле 500 Мбайт, но не работает в следующем по величине файле, который у меня есть – 2.5gb).

В частности, если мой код выглядит так:

$reader = new XMLReader(); if ($reader->open("big.xml")) { echo "Success!"; $reader->close(); } else { echo "Failed!"; } 

Если я тестирую большой файл (> 2gb), я получаю следующее:

 Warning: XMLReader::open() [xmlreader.open]: Unable to open source data in [php script] 

И, конечно же, не Failed! выводится.

Если я попытаюсь с меньшим (500mb) файлом – я получаю только Succcess! вывод.

Насколько я могу судить, нет никакой разницы между большими файлами, которые невозможно открыть, и средними файлами, которые можно открыть (например, разрешениями, действительным XML, кодировкой). ИСКЛЮЧИТЕ размер файла.

Хотя размер файла большой – узлы все крошечные, поэтому я не думаю, что какой-либо один узел вызовет проблему с памятью.

Solutions Collecting From Web of "XMLReader не может открывать большие (> 2gb) XML-файлы"