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

Тема в разделе "Как сделать...", создана пользователем zilon, 9 сен 2012.

Статус темы:
Закрыта.
  1. zilon

    zilon

    Регистр.:
    30 июл 2011
    Сообщения:
    370
    Симпатии:
    147
    Хочу вывести город посетителя, нашёл сервис который его показывает, если оправить ip GET'ом - http://ru.smart-ip.net/geoip-xml/109.126.32.37 мне всего то нужно спарсить то что между тегами <city>...</city> а как это сделать я не знаю, не разу с этим не сталкивался

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

    PHP:
    <?php
    $ip 
    $_SERVER['REMOTE_ADDR'];
    $url 'http://ru.smart-ip.net/geoip-xml/'.$ip;
    ?>
    выдачу парсил и курил целый час, но ничего не мог найти, может не там ищу:crazy:
     
  2. StrikeOFF

    StrikeOFF ♥kan inte lyfta utan lift♥

    Регистр.:
    20 мар 2010
    Сообщения:
    362
    Симпатии:
    200
    Код:
    preg_match_all('/<city>(.*)<\/city>/',$url, $result);
    $result - массив, выведешь я думаю сам.
     
  3. StrikeOFF

    StrikeOFF ♥kan inte lyfta utan lift♥

    Регистр.:
    20 мар 2010
    Сообщения:
    362
    Симпатии:
    200
    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($handleCURLOPT_URL$url);
        
    curl_setopt($handleCURLOPT_REFERER$url);
        
    curl_setopt($handleCURLOPT_TIMEOUT5);
        
    curl_setopt($handleCURLOPT_CONNECTTIMEOUT5);
        
    curl_setopt($handleCURLOPT_RETURNTRANSFER1);
        
    $contents curl_exec($handle);
        
    curl_close($handle);
        return(
    $contents);
        }
    ?>
     
    zilon нравится это.
  4. Extalionez

    Extalionez Клоун

    Заблокирован
    Регистр.:
    21 авг 2008
    Сообщения:
    368
    Симпатии:
    185
    Ну вы и загнули: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];
    ?>
     
  5. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    624
    Симпатии:
    1.379
    А если не по-человечески, а представить что ты программист?
    PHP:
    <?
    if(
    $s=simplexml_load_file('http://ru.smart-ip.net/geoip-xml/109.126.32.37'))echo$s->city;
    ?>
     
    antiterror, StrikeOFF и latteo нравится это.
Статус темы:
Закрыта.