Загрузка удаленной xml-страницы с помощью file_get_contents ()

Я видел некоторые вопросы, подобные этому в Интернете, и никто не ответил.

Я хочу вернуть источник удаленной XML-страницы в строку. Удаленная страница XML для целей этого вопроса:

http://www.test.com/foo.xml 

В обычном веб-браузере я могу просмотреть страницу, а источник – XML-документ. Однако, когда я использую file_get_contents('http://www.test.com/foo.xml') , он возвращает строку с соответствующим URL-адресом.

Нужно ли извлекать XML-компонент? Мне все равно, если он использует file_get_contents или нет, просто что-то, что сработает.

Для этого вам необходимо установить allow_url_fopen на вашем сервере.

Если вы этого не сделаете, вы можете использовать эту функцию в качестве замены:

 <?php function curl_get_file_contents($URL) { $c = curl_init(); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_URL, $URL); $contents = curl_exec($c); curl_close($c); if ($contents) return $contents; else return FALSE; } ?> 

Заимствовано отсюда .

Это кажется странным. Ли file_get_contents () возвращает любые допустимые данные для других сайтов (а не только для XML)? URL-адрес может использоваться только как параметр имени файла, если fopen-wrappers включен (что они по умолчанию).

Я предполагаю, что вы собираетесь обработать извлеченный XML позже – тогда вы сможете загрузить его в SimpleXml напрямую, используя simplexml_load _file ().

 try { $xml = simplexml_load_file('http://www.test.com/foo.xml'); print_r($xml); } ... 

Я рекомендую использовать SimpleXML для чтения XML-файлов, он очень прост в использовании.