PHP警告:DOMDocument :: load():I / O警告:无法加载外部实体

时间:2014-05-06 08:39:58

标签: php xml domdocument

我在没有找到任何解决方案的情况下阅读了有关此错误的所有信息。

我有一个看起来像这样的简单页面:

$xmlfile = "/var/www/marees.xml"; //Fichier dans lequel récupérer les données
$ent = new DOMDocument();
$ent->load($xmlfile);

if(!(@$ent->load($xmlfile)))
{
    echo "Unable to load : " . $xmlfile;
    exit();
}

我从四个中得到三次,随机出现这个错误:

  

PHP警告:DOMDocument :: load():I / O警告:无法在第7行的/var/www/marees/test2.php中加载外部实体“/var/www/marees.xml”

当我重新启动Apache时,脚本正常运行5分钟,然后错误开始出现。

XML文件重595 kB,存在且可读。

可能是什么问题?

2 个答案:

答案 0 :(得分:10)

将此命令添加到脚本的顶部:

libxml_disable_entity_loader(false);

有关详细信息,请参阅this link

答案 1 :(得分:1)

public mixed DOMDocument::load ( string $filename [, int $options = 0 ] )

function declaration带有一个名为$options的可选参数,其中包含:

  

选项
  libxml option constants的按位OR。

LIBXML_NOWARNING常量的使用为我解决了这个问题:

$ent->load($xmlfile, LIBXML_NOWARNING);