Php 加载XML文件太大
我试图从一个包含大约60MB数据的URL加载xml内容。当我使用简单的XML内置库执行此操作时,我不断收到以下错误:Php 加载XML文件太大,php,xml,simplexml,Php,Xml,Simplexml,我试图从一个包含大约60MB数据的URL加载xml内容。当我使用简单的XML内置库执行此操作时,我不断收到以下错误: PHP Warning: DOMDocument::loadXML(): internal error: Huge input lookup in Entity, line: 845125 脚本正在停止。发生了什么?我该怎么处理 我使用的示例url: http://foo.com/feed.xml libxml2变更日志包含“608773在xmlGROW(danielvei
PHP Warning: DOMDocument::loadXML(): internal error: Huge input lookup in Entity, line: 845125
脚本正在停止。发生了什么?我该怎么处理
我使用的示例url:
http://foo.com/feed.xml
libxml2变更日志包含“608773在xmlGROW(danielveillard)中添加缺少的检查”,这似乎与输入缓冲有关。注意,我对libxml2的内部结构一无所知,但可以想象的是,您在2.7.7中修复了一个2.7.6错误 当您直接使用simplexml_load_file()时,请检查行为是否有任何不同,并尝试设置与libxml解析器相关的选项,例如 simplexml_load_string($xml,'simplexmlement',LIBXML_COMPACT | LIBXML_parsegig)` 具体地说,您可能需要尝试LIBXML_标志
XML_PARSE_巨型标志放宽了解析器的任何硬编码限制。这会影响文档的最大深度或实体递归等限制,以及文本节点的大小限制。要么增加PHP内存限制,要么取决于对XML的处理方式,尝试使用仅向前的读取器而不是完整的XML objectTarget XML出现错误,浏览器未加载该错误。请使用XMLReader迭代提要条目,将其扩展到DOM,并使用Xpath获取每个条目的详细信息。这样,只有一个入口节点及其子节点将加载到内存中。以下是一个例子: