-->

的XMLReader不能开大(> 2GB)的XML文件[复制](XMLReader can&#

2019-10-21 00:01发布

这个问题已经在这里有一个答案:

  • 问题读取大于1GB的文件用的XMLReader 6回答

我已经写了使用的XMLReader解析PHP中的大型XML文件的应用程序。

通常,应用程序的伟大工程,当我试图读取一个文件,该文件大于2GB的除外

(我还没有想出究竟在何处截止是,它完美的作品在一个500MB的文件,但没有对我有一个最大的文件 - 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,编码), 除了文件的大小没有区别。

虽然文件的大小是大 - 的节点都是微小的,所以我不认为任何单一节点会导致内存问题。

Answer 1:

PHP可运行内存。 尝试:

ini_set('memory_limit','256M');


文章来源: XMLReader can't open large (>2gb) XML files [duplicate]