У меня есть URL-адрес, подобный этому http://somedomain.com/frieventexport.php
и содержимое этого URL-адреса является простой структурой XML, если я проверяю исходный код сайта:
Как я могу разобрать этот URL-адрес и использовать его в PHP? Этот скрипт дает мне ошибку … «Ошибка загрузки XML».
<?php $xml_url = "http://somedomain.com/frieventexport.php"; if (($response_xml_data = file_get_contents($xml_url))===false){ echo "Error fetching XML\n"; } else { libxml_use_internal_errors(true); $data = simplexml_load_string($response_xml_data); if (!$data) { echo "Error loading XML\n"; foreach(libxml_get_errors() as $error) { echo "\t", $error->message; } } else { print_r($data); } } ?>
На мой взгляд, одним из лучших вариантов является использование CURL для получения необработанных данных XML из URL:
$curl = curl_init(); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt( $curl, CURLOPT_URL, "http://somedomain.com/frieventexport.php" ); $xml = curl_exec( $curl ); curl_close( $curl );
Затем вы можете использовать DOMDocument для анализа xml:
$document = new DOMDocument; $document->loadXML( $xml );
Я бы также рекомендовал использовать теги <![CDATA[]>
в вашем XML. Пожалуйста, прочитайте следующее:
<![CDATA[]]>
в XML? Дополнительная информация о DOMDocument и использовании
file_get_contents()
обычно отключается, если это общий хостинг, если вы не можете установить allow_url_fopen
в php.ini (однако остерегайтесь рисков безопасности). Вы можете проверить настройку этого, используя php_info()
или var_dump(ini_get('allow_url_fopen'))
чтобы показать, разрешено или нет.
Если вы не можете сделать это, вы можете использовать CURL для извлечения внешнего содержимого
Попробуйте следующее:
$url = 'xml-file.xml'; $xml = simplexml_load_file($url); print_r($xml);
Попробуй это :
$livescore_data = new SimpleXMLElement($file);