函数simplexml_load_string()上的XML_PARSE_HUGE

时间:2011-03-25 02:55:45

标签: php xml simplexml libxml2

常量XML_PARSE_HUGE可以作为第三个参数传递给simplexml_load_string()。根据{{​​3}}这个标志:

  

放宽解析器的任何硬编码限制。

什么是“解析器的默认硬编码限制”?

我认为放松也有点含糊不清。它是否消除或增加“硬编码限制”?

2 个答案:

答案 0 :(得分:4)

来自http://bugs.php.net/49660

  

自版本2.7.3以来,libxml限制了   单个文本节点的最大大小   10MB。可以使用a删除限制   新选项,XML_PARSE_HUGE。 PHP没有   为libxml指定此选项的方法。

所以我想这个标志就是PHP现在必须指定这个选项的方式。

答案 1 :(得分:3)

时间已经过去了: http://php.net/manual/en/libxml.constants.php

  

LIBXML_PARSEHUGE - 设置XML_PARSE_HUGE标志,放宽任何   解析器的硬编码限制。这会影响最大限度   文档的深度或实体递归,以及的限制   文本节点的大小。
  仅适用于Libxml> = 2.7.0(自PHP> = 起)   * 5.3.2和PHP> = 5.2.12)*

//example of use
$xmlDoc = new DOMDocument();
$xmlDoc->loadXML( $xml , LIBXML_PARSEHUGE );