Мне нужно прочитать XML-файл из URL
$map_url = "http://maps.google.com/maps/api/directions/xml?origin=".$merchant_address_url."&destination=".$customer_address_url."&sensor=false";
Это дает мне URL, например:
Я использую эту функцию, чтобы прочитать, а затем получить данные:
$response_xml_data = file_get_contents($map_url);
if($response_xml_data){
echo "read";
}
$data = simplexml_load_string($response_xml_data);
echo "<pre>"; print_r($data); exit;
Но не повезло, любая помощь?
вы можете получить данные из XML с помощью "в simplexml_load_file и" функция. Пожалуйста, обратитесь по этой ссылке
http://php.net/manual/en/function.simplexml-load-file.php
$url = "http://maps.google.com/maps/api/directions/xml?origin=Quentin+Road+Brooklyn%2C+New+York%2C+11234+United+States&destination=550+Madison+Avenue+New+York%2C+New+York%2C+10001+United+States&sensor=false";
$xml = simplexml_load_file($url);
print_r($xml);
Ваш код вроде правильно, проверьте, если у вас есть фантики функции fopen включена (опция allow_url_fopen = On
на языке PHP.Ини)
Также, как уже упоминалось в других ответов, вы должны предоставить правильно закодированный URI или кодирует его с помощью функция urlencode() Функция. Вы должны также проверить, если есть какие-либо ошибки выборки XML-строку и если есть разбор ошибок, которые вы можете вывести, используя libxml_get_errors() следующим образом:
<?php
if (($response_xml_data = file_get_contents($map_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);
}
}
?>
Если проблема вы можете'т принести XML-код может быть, это's, потому что вы должны включать в себя некоторые пользовательские заголовки в запросе, проверить, как использовать помощью функции stream_context_create() для создания пользовательских трансляций контекст для использования при вызове функции file_get_contents () по примеру 4 по http://php.net/manual/en/function.file-get-contents.php
`функции file_get_contents (), как правило, не имеет проблем с разрешениями. Чтобы избежать их, используйте:
function get_xml_from_url($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$xmlstr = curl_exec($ch);
curl_close($ch);
return $xmlstr;
}
Пример:
$xmlstr = get_xml_from_url('http://www.camara.gov.br/SitCamaraWS/Deputados.asmx/ObterDeputados');
$xmlobj = new SimpleXMLElement($xmlstr);
$xmlobj = (array)$xmlobj;//optional
$URL-адрес = 'http://www.example.com'; $в XML = simpleXML_load_file (URL-адрес$, что"SimpleXMLElement" Ну,LIBXML_NOCDATA);
$URL-адрес может быть php-файл, пока файл генерировать данные в формате XML в качестве выходного.
Это работает для меня. Я думаю, что вы, вероятно, нужно использовать функция urlencode () по каждому из компонентов
$map_url`.