我正在尝试在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
是错误中列出的那个)
很遗憾,我没有任何其他信息,因为我不知道为什么会发生这种情况。问题的根源可能是什么?
答案 0 :(得分:0)
我终于找到了没有人会发现的问题,仅通过阅读以下问题即可:mxgraph-php
使用libxml_disable_entity_loader
而没有发出任何通知,这就是导致错误的原因。
对于使用mxServer.php
的用户,如果您信任XML文件(请参见vulnerability example),则只需注释/删除该行即可:
libxml_disable_entity_loader(true);
如果您不能信任XML文件,则可以将simplexml_load_string
与文件的处理内容一起用作参数。
注意我无法想到mxgraph
是此问题的根源,我花了几个小时解决这个问题,因此希望它能帮助来自带有警告文字的Google。