simplexml_load_file:无法加载外部实体(称为本地路径)

时间:2018-12-20 13:26:00

标签: php simplexml

我正在尝试在PHP 7.2中使用simplexml_load_file函数。我得到

Warning: simplexml_load_file(): I/O warning : failed to load external entity  "../repositories/some.xml"

我去了,将对simplexml_load_file的呼叫替换为以下内容:

$source = file_get_contents($path);
$xml = simplexml_load_string($source);

我现在工作得很好。 (注意$path是错误中列出的那个)

很遗憾,我没有任何其他信息,因为我不知道为什么会发生这种情况。问题的根源可能是什么?

1 个答案:

答案 0 :(得分:0)

我终于找到了没有人会发现的问题,仅通过阅读以下问题即可:mxgraph-php使用libxml_disable_entity_loader而没有发出任何通知,这就是导致错误的原因。

对于使用mxServer.php的用户,如果您信任XML文件(请参见vulnerability example),则只需注释/删除该行即可:

libxml_disable_entity_loader(true);

如果您不能信任XML文件,则可以将simplexml_load_string与文件的处理内容一起用作参数。


注意我无法想到mxgraph是此问题的根源,我花了几个小时解决这个问题,因此希望它能帮助来自带有警告文字的Google。