我正在尝试从包含大约60MB数据的URL加载xml内容。当我使用简单的XML内置库时,我不断收到以下错误:
PHP Warning: DOMDocument::loadXML(): internal error: Huge input lookup in Entity, line: 845125
脚本正在停止。怎么了?我怎么处理这个?
我使用的示例网址:
http://foo.com/feed.xml
答案 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标志放松了解析器的任何硬编码限制。这会影响文档的最大深度或实体递归等限制,以及文本节点大小的限制。