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

Я пытаюсь использовать 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 это тот, который указан в ошибке)

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

0

Решение

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

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

libxml_disable_entity_loader(true);

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


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

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector