Я видел некоторые вопросы, подобные этому в Интернете, и никто не ответил.
Я хочу вернуть источник удаленной 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-файлов, он очень прост в использовании.