LoadXML文件太大了

时间:2016-10-24 10:29:39

标签: php xml simplexml

我正在尝试从包含大约60MB数据的URL加载xml内容。当我使用简单的XML内置库时,我不断收到以下错误:

PHP Warning:  DOMDocument::loadXML(): internal error: Huge input lookup in Entity, line: 845125

脚本正在停止。怎么了?我怎么处理这个?

我使用的示例网址:

http://foo.com/feed.xml

1 个答案:

答案 0 :(得分:1)

libxml2更改日志包含" 608773在xmlGROW(Daniel Veillard)"中添加缺少的检查,这似乎与输入缓冲有关。注意我对libxml2内部结构一无所知,但似乎可以想象你已经在2.7.7中修复了一个2.7.6错误。

直接使用simplexml_load_file()时检查行为是否有所不同,并尝试设置与libxml解析器相关的选项,例如

simplexml_load_string($ xml,' SimpleXMLElement',LIBXML_COMPACT | LIBXML_PARSEHUGE) 具体来说,您可能想尝试LIBXML_PARSEHUGE标志。

http://php.net/manual/en/libxml.constants.php XML_PARSE_HUGE标志放松了解析器的任何硬编码限制。这会影响文档的最大深度或实体递归等限制,以及文本节点大小的限制。