XMLReader无法打开大型(> 2gb)XML文件

时间:2014-09-18 15:19:24

标签: php xml xml-parsing xmlreader

我编写了一个使用XMLReader在PHP中解析大型XML文件的应用程序。

通常情况下,当我尝试读取大于2gb的文件时,应用程序效果很好, EXCEPT

(我还没弄清楚截止的确切位置;它在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,编码) EXCEPT 文件的大小。

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

1 个答案:

答案 0 :(得分:1)

PHP可能内存不足。尝试:

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