За последние 24 часа нас посетили 20730 программистов и 1106 роботов. Сейчас ищут 392 программиста ...

погода

Тема в разделе "Сделайте за меня", создана пользователем Ismagilov, 17 сен 2017.

  1. Ismagilov

    Ismagilov Новичок

    С нами с:
    5 окт 2016
    Сообщения:
    23
    Симпатии:
    0
    скиньте пожалуста простинькии скрипт который по IP выводит погоду
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    дожили, уже по IP погода)))) всегда думал что погода по Месторасположению бывает
     
  3. Ismagilov

    Ismagilov Новичок

    С нами с:
    5 окт 2016
    Сообщения:
    23
    Симпатии:
    0
    а если разные пользователи будут заходить?)
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    А если через проксю? Сейчас это практикуется, как никогда ранее.
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    У меня так друг не может нормально пользоваться интернетом с выданного на руки корпоративного ноута, гоняющего трафик через корпоративный VPN, находящийся в германии. Половина сайтов открываются на немецком, в половине из них нет возможности руками сменить локаль. Всякие магазины, стимы и прочее позволяют сменить локаль, но ценовую зону определяют как "Евросоюз". Ну и по мелочи.

    Разумеется, лезть в корп.имущество и что-то перенастраивать и ковырять строго запрещается. Вот вам и вебдваноль.
     
  6. rishard

    rishard Новичок

    С нами с:
    20 сен 2016
    Сообщения:
    228
    Симпатии:
    27

    С американского Weather Underground вытаскиваю погоду по ip для сайта вот так:

    PHP:
    1. <?php
    2. $ip = $_SERVER['REMOTE_ADDR'];
    3. $url = 'http://api.sypexgeo.net/xml/'. $ip .'';
    4. $loc_array = array($xml->ip->city->lat,$xml->ip->city->lon);
    5. $loc_safe = array();
    6. foreach($loc_array as $loc){
    7.     $loc_safe[] = urlencode($loc);
    8. }
    9. $loc_string=implode(',', $loc_safe);
    10. $json = file_get_contents('http://api.wunderground.com/api/vash_api_key/conditions/satellite/webcams/forecast/q/' . $loc_string . '.json');
    11. $obj = json_decode($json, true);
    12. $webcam_key = array_rand(array_keys($obj['webcams']), true);
    13. ?>
    14.  
    15. <div><strong><?=($obj['current_observation']['display_location']['full']);?></strong></div>
    16. <div><?=($obj['current_observation']['local_time_rfc822']);?></div>
    17. <div><?=('Lat ' . $obj['current_observation']['display_location']['latitude']);?></div>
    18. <div><?=('Lon ' . $obj['current_observation']['display_location']['longitude']);?></div>
    19. <h4>Weather forecast</h4>
    20. <?
    21.  
    22. $html .= "</h2><table cellpadding=10 cellspacing=5><tr>";
    23.     foreach ($obj['forecast']['simpleforecast']['forecastday'] as $arr) {
    24.         $html .= "<td align='center'>" . $arr['date']['weekday'] . "<br />";
    25.         $html .= "<img src='http://icons-pe.wxug.com/i/c/k/" . $arr['icon'] . ".gif' border=0 /><br />";
    26.         $html .= "<font color='red'>" . $arr['high']['celsius'] . '&deg;C' . " </font>";
    27.         $html .= "<font color='blue'>" . $arr['low']['celsius'] . '&deg;C' . "</font>";
    28.         $html .= "</td>";
    29.     }
    30.     $html .= "</tr></table>";
    31.  
    32. echo $html;
    33. ?>
    34.  
    35. <h4>Satellite</h4>
    36. <div><?='<img width="200" src="' . $obj['satellite']['image_url'] . '"/>';?></div>
    37. <h4>Weather today</h4>
    38. <div><?='<img src="' . $obj['current_observation']['icon_url'] . '"/>';?></div>
    39. <div><?=($obj['current_observation']['temp_c'] . '&deg;C');?></div>
    40. <div><?=($obj['current_observation']['weather']);?></div>
    41. <div><?=('Humidity ' . $obj['current_observation']['relative_humidity']);?></div>
    42. <div><?=('Pressure ' . $obj['current_observation']['pressure_mb'] . 'mb');?></div>
    43. <div><?=('Visibility ' . $obj['current_observation']['visibility_km'] . 'km');?></div>
    44. <div><?=($obj['forecast']['txt_forecast']['forecastday']['0']['fcttext']);?></div>
    45. <h4>Random webcam</h4>
    46. <div><?='<img width="200" src="' . $obj['webcams'][$webcam_key]['CURRENTIMAGEURL'] . '"/>';?></div>
    47. <p> </p>
    48. <div><?=($obj['webcams'][$webcam_key][neighborhood]);?></div>
    Для российских локаций нередко отсутствует картинка из вебкамеры, оптимально добавить проверку на наличие изображения, любым удобным способом. Вот так, например, без проблем отрабатывает:

    PHP:
    1. <?
    2. if (@fopen($obj['webcams'][$webcam_key]['CURRENTIMAGEURL'],'r'))
    3. echo '<h4>Random webcam</h4>' . '<div><img width="200" src="' . $obj['webcams'][$webcam_key]['CURRENTIMAGEURL'] . '"/>' . '</div>' . '<p> </p>' . '<div>' . $obj['webcams'][$webcam_key][neighborhood] . '</div>';
    4. ?>
     
    Ismagilov и denis01 нравится это.