simplexml_load_file: невозможно загрузить внешнюю сущность (вызывается для локального пути) - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь использовать функцию 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);

, и теперь я отлично работаю.( Примечание * * * * * * * * * * * * * * * * * * * * * * * * * *, стр. 1011). К сожалению, у меня нет никакой другой информации, так как я понятия не имею, почему это могло произойти.В чем может быть корень проблемы?

1 Ответ

0 голосов
/ 20 декабря 2018

Я наконец нашел проблему, которую никто не мог найти, просто прочитав вопрос: mxgraph-php использует libxml_disable_entity_loader без какого-либо уведомления, и это является причиной ошибки.

Для тех, кто использует mxServer.php, вы можете просто закомментировать / удалить строку, если доверяете файлам XML (см. пример уязвимости ):

libxml_disable_entity_loader(true);

Если выне может доверять файлу XML, вы можете использовать simplexml_load_string с обработанным содержимым файла в качестве параметра.


ПРИМЕЧАНИЕ Я не мог думать о mxgraph как источник этой проблемы, и я потратил на это несколько часов, поэтому я надеюсь, что это поможет людям, пришедшим из Google, с этим текстом предупреждения.

...