这个问题已经在这里有一个答案:
- 问题读取大于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,编码), 除了文件的大小没有区别。
虽然文件的大小是大 - 的节点都是微小的,所以我不认为任何单一节点会导致内存问题。