PHP: DOMDocument::load(): I/O:加载外部实体失败


PHP Warning: DOMDocument::load(): I/O warning : failed to load external entity

我阅读了关于这个错误的所有内容,但无法找到任何解决方案。

我有一个简单的页面,看起来像这样:
$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警告:在/var/www/marees/test2. PHP第7行加载外部实体"/var/www/marees.xml"失败

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

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

可能是什么问题?

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

libxml_disable_entity_loader(false);

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

函数声明带有一个名为$options的可选形参,其中

选项>
libxml选项常量的按位或。

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

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

在我的例子中,我正在复制XML根目录中的一些文件。这个进程递归地改变了根目录的权限。所以我只是在复制文件后使用下面的代码更改权限,它工作

        mkdir($rootDirectoryAddress, 0777, true);