За последние 24 часа нас посетил 16851 программист и 1647 роботов. Сейчас ищут 950 программистов ...

погодный информер

Тема в разделе "PHP для новичков", создана пользователем vikrorpert, 1 ноя 2012.

  1. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    нужно определить по ип адресу юзера погоду, а точнее температуру
    до этого использовался сервис гугля, но он уже не работает

    счас сделал через костыли- по ип получаю город, затем лезу на яндекс http://pogoda.yandex.ua/odessa и парсю температуру

    поиск выдает или нерабочий гугл или костыли с яндексом
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    тяжелые будни писателя погодного информера ...
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    а не проще воткнуть родной информер от "настоящего" сервиса?
     
  4. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    подскажите какой? пока есть тупой виджет от яндекса, где город жестко прописывается
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Честно говоря лениво проверять. Мне казалось, что gismeteo и weather.com предлагают автоматические виджеты, только дизайн тюнингуешь.
    Если это не так, то заранее извиняюсь.
     
  6. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    сам же себе и отвечу и может помогу кому
    http://free.worldweatheronline.com отличное апи по погоде, причем все просто и понятно
     
  7. tekumze

    tekumze Новичок

    С нами с:
    16 мар 2014
    Сообщения:
    1
    Симпатии:
    0
    сделайте вот так, если еще не сделали. Простое и готовое решение вашей задачки, демка здесь.

    Код (Text):
    1. <?php
    2. $ip = $_SERVER['REMOTE_ADDR'];
    3. include("SxGeo.php");
    4. $SxGeo = new SxGeo('SxGeoCity.dat');
    5. $city = $SxGeo->get($ip);
    6. echo "{$city['city']}<br/>";
    7. echo "<br>";
    8. $loc_array = array($city['lat'],$city['lon']);
    9. $api_key="VASH_API_KEY";
    10. $num_of_days=1;
    11. $loc_safe = array();
    12. foreach($loc_array as $loc){
    13.  $loc_safe[] = urlencode($loc);
    14. }
    15. $loc_string=implode(',', $loc_safe);
    16. $basicurl = sprintf('http://api.worldweatheronline.com/free/v1/weather.ashx?key=%s&q=%s&num_of_days=%s', $api_key, $loc_string, intval($num_of_days));
    17. $xml_response = file_get_contents($basicurl);
    18. $xml = simplexml_load_string($xml_response);
    19. $ss = array();
    20. foreach ($xml[0] as $name => $val) {
    21. foreach ($val as $name1 => $val1)
    22. {
    23. $ss[$name1] = $val1;
    24. }
    25. }
    26. echo '<img src="' . $xml->weather->weatherIconUrl . '"/>';
    27. echo "<br>";
    28. echo "<br>";
    29. echo $ss["date"];
    30. echo "<br>";
    31. echo "Координаты {$ss["query"]}";
    32. echo "<br>";
    33. echo "Температура {$ss["temp_C"]} С";
    34. echo "<br>";
    35. echo "Мин. температура сегодня {$ss["tempMinC"]} С*";
    36. echo "<br>";
    37. echo "Макс. температура сегодня {$ss["tempMaxC"]} С*";
    38. echo "<br>";
    39. echo "Скорость ветра {$ss["windspeedKmph"]} м/сек";
    40. echo "<br>";
    41. echo "Направление ветра {$ss["winddirection"]}";
    42. echo "<br>";
    43. echo "Пасмурно {$ss["cloudcover"]}%";
    44. echo "<br>";
    45. echo "Давление {$ss["pressure"]} mb";
    46. echo "<br>";
    47. echo "Влажность {$ss["humidity"]}%";
    48. echo "<br>";
    49. echo "Видимость {$ss["visibility"]} км";
    50. echo "<br>";
    51. echo $ss["weatherDesc"];