Простой парсинг XML

Статус
В этой теме нельзя размещать новые ответы.

zilon

Постоялец
Регистрация
30 Июл 2011
Сообщения
370
Реакции
146
Хочу вывести город посетителя, нашёл сервис который его показывает, если оправить ip GET'ом - Для просмотра ссылки Войди или Зарегистрируйся мне всего то нужно спарсить то что между тегами <city>...</city> а как это сделать я не знаю, не разу с этим не сталкивался

остановился на этом

PHP:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$url = 'http://ru.smart-ip.net/geoip-xml/'.$ip;
?>

выдачу парсил и курил целый час, но ничего не мог найти, может не там ищу:crazy:
 
Код:
preg_match_all('/<city>(.*)<\/city>/',$url, $result);
$result - массив, выведешь я думаю сам.
 
PHP:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$url = 'http://ru.smart-ip.net/geoip-xml/'.$ip;
$v = GetUrl($url);
preg_match_all('/<city>(.*)<\/city>/',$v, $result);
echo "Ваш город ".$result;
 
//так смотреть где результат
// и учится выводить самому.
echo "<pre>";
print_r($result);
echo "</pre>";
//
 
    function GetUrl($url)
    {
    $handle = curl_init();
    curl_setopt($handle, CURLOPT_URL, $url);
    curl_setopt($handle, CURLOPT_REFERER, $url);
    curl_setopt($handle, CURLOPT_TIMEOUT, 5);
    curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
    $contents = curl_exec($handle);
    curl_close($handle);
    return($contents);
    }
?>
 
  • Заблокирован
  • #4
Ну вы и загнули:eek:
А по-человечески нельзя было сделать?
PHP:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$url = 'http://ru.smart-ip.net/geoip-xml/'.$ip;
$xml = file_get_contents($url);
$xml = simplexml_load_string($xml);
echo $xml->city[0];
?>
 
А если не по-человечески, а представить что ты программист?
PHP:
<?
if($s=simplexml_load_file('http://ru.smart-ip.net/geoip-xml/109.126.32.37'))echo$s->city;
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху