Я пытаюсь использовать simplexml_load_file
функция в PHP 7.2. я получил
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
это тот, который указан в ошибке)
К сожалению, у меня нет никакой другой информации, так как я понятия не имею, почему это могло произойти. В чем может быть корень проблемы?
Я наконец нашел проблему, которую никто не мог найти, просто прочитав вопрос: mxgraph-php
использования libxml_disable_entity_loader
без какого-либо уведомления, и это является причиной ошибки.
Для тех, кто использует mxServer.php
, Вы можете просто закомментировать / удалить строку, если вы доверяете файлам XML (см. пример уязвимости):
libxml_disable_entity_loader(true);
Если вы не можете доверять XML-файлу, вы можете использовать simplexml_load_string
с обработанным содержимым файла в качестве параметра.
НОТА Я не мог думать о mxgraph
как источник этой проблемы, и я потратил несколько часов на это, поэтому я надеюсь, что это поможет людям, пришедшим из Google, с этим текстом предупреждения.
Других решений пока нет …