Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pogoda na stronie www, Pogoda - skrypt php
rafalskula
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.09.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam,
on dłużego czasu poszukuje skryptu pokazującego warunki pogodowe na mojej stronie www.
Do te pory miałem skrypt wyciągający informację z onetu, lecz coś pozmieniali w onecie i nic już u mnie nie świeci.
Przedewszyskim chodzi mi o czeskie ośrodki narciarskie. Czy ktoś pomoże mi coś takiego napisać , a może ma gotowca. Czytałem na forum o meteoprog.pl i xml, ale nic nie znalazłem na ich stronie.
Napisałem do na priv do jedengo z użytowników i czekam na informację po widzę na jego stronie , że to hula. Strona http://jastrzebieonline.pl/


Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
modern-web
post
Post #2





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


Dane pogodowe pobierać możesz z google, to nie problem, a jest pewność że nic się nie zmieni "od tak" (IMG:style_emoticons/default/smile.gif)
Gotowca nie dostaniesz, wątpię by taki program ktoś już napisał i oddał za darmo (ale fajny pomysł, wezmę się za to tak nawiasem mówiąc (IMG:style_emoticons/default/smile.gif) ), także jeśli poczekasz trochę - mogę Ci to oddać.
Także podsumowując, robisz sam albo zapraszamy do wątku "Giełda ofert" (IMG:style_emoticons/default/smile.gif) albo czekasz... czas nieokreślony.
Go to the top of the page
+Quote Post
Arcioch
post
Post #3





Grupa: Zarejestrowani
Postów: 324
Pomógł: 110
Dołączył: 18.09.2012

Ostrzeżenie: (0%)
-----


Google wyłączyło api dla pogody dlatego już raczej z google nic nie pobierzesz (IMG:style_emoticons/default/smile.gif) Od kiedy google wyłączyło pogodę korzystam z http://www.pogodynka.net/strona/api zwraca wszystkie potrzebne informacje (IMG:style_emoticons/default/smile.gif) Ikonkę pogodową i tłumaczenia pogody na następne dni można sobie w bardzo łatwy sposób dorobić (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
rafalskula
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.09.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


modern-web dziękuję za propozycję (IMG:style_emoticons/default/smile.gif) Jeżeli masz czas to chętnie poczekam. Nawiasem mówiąc sam bym chciał się nauczyć, ale wiem, że to mi trochę czasu zajmie. Przejże też to co wysał mi Arcioch, mam przynajmniej jakiś punkt wyjścia. Co do google to nie działa - już probowałem.

Może ktoś ma jeszcze jakieś informację i chce się podzielić ?

Dziękuję Wam
Go to the top of the page
+Quote Post
siuda
post
Post #5





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 15.03.2012

Ostrzeżenie: (0%)
-----


Jeżeli poradzisz sobie z SOAP'em to polecam tą usługę:
http://www.webservicex.net/ws/wsdetails.as...=12&wsid=56
Go to the top of the page
+Quote Post
rafalskula
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.09.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Arcioch chyba jestem za głupi, siedze od kilku godzin i nie moge tego xml przerobić. Możesz mi pomóc ?
Jak to przerobić na normalne wyświetlanie
Teraz mam coś takiego:

SimpleXMLElement Object
(
[observation_time] => 06:48 PM
[temp_C] => 9
[temp_F] => 48
[weatherCode] => 116
[weatherDesc] => Częściowe zachmurzenie
[windspeedMiles] => 6
[windspeedKmph] => 9
[winddirDegree] => 60
[winddir16Point] => ENE
[precipMM] => 0.0
[humidity] => 71
[visibility] => 10
[pressure] => 1026
[cloudcover] => 75
[FeelsLikeC] => 8
[FeelsLikeF] => 46
)

Nie znam sie kompletnie na xml zielony jestem .

Pozdrawiam


Żeby nie było, że nic nie robię.
Już mi działa wyciągniecie temperatury
  1. $temp_C = simplexml_load_file('http://www.pogodynka.net/api:server/weather/getCurrent.xml?city=pec-pod-sniezka');
  2. echo '';
  3. foreach ($temp_C->temp_C as $p) {
  4. echo '' . $p . '°C';
  5. foreach ($p->attributes() as $atr) {
  6. echo '' . $atr . '';
  7. }
  8. echo '';
  9. }
  10. echo '<br>';


Może mi ktoś powie jak wyciągnąć grafikę z http://www.pogodynka.net/api:server/weathe...od-%C5%9Bniezka

Chodzi o chmurki, słonka itp (IMG:style_emoticons/default/wink.gif)


Wczoraj nie miałem pojęcia o XML a dziś już coś sam zrobiłęm ehh:)


Czekam dalej na jakieś info.

Pozdrawiam
Go to the top of the page
+Quote Post
Arcioch
post
Post #7





Grupa: Zarejestrowani
Postów: 324
Pomógł: 110
Dołączył: 18.09.2012

Ostrzeżenie: (0%)
-----


Jasne że mogę pomóc (IMG:style_emoticons/default/smile.gif)
Ja to robię po parametrze weatherCode (IMG:style_emoticons/default/smile.gif)
Tu masz listę http://www.worldweatheronline.com/feed/wwoConditionCodes.txt

I teraz robisz sobie tablicę z numerami i jakie obrazki ma zwracać (IMG:style_emoticons/default/smile.gif) czyli:

  1. <?php
  2. $icons = array(
  3. 'numerKodu' => 'ikocnka',
  4. '113' => 'sunny.png',
  5. );
  6. ?>

I tak wszystkie kody (IMG:style_emoticons/default/smile.gif)

No a potem zwracasz sobie do widoku $icons['weatherCode'] i masz obrazek (IMG:style_emoticons/default/smile.gif)

Tu masz darmowe ikonki pogodowe http://www.webresourcesdepot.com/free-weat...ons-collection/
Go to the top of the page
+Quote Post
rafalskula
post
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.09.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


mam już balagan w głowie, cały czas walcze z tym

Powiedz mi jak mam
  1. <?php $temp_C = simplexml_load_file('http://www.pogodynka.net/api:server/weather/getCurrent.xml?city=pec-pod-sniezka');
  2. echo '';
  3. foreach ($temp_C->temp_C as $p) {
  4. echo '' . $p . '°C';
  5. foreach ($p->attributes() as $atr) {
  6. echo '' . $atr . '';
  7. }
  8. echo '';
  9. }
  10. echo '<br>';?>


to gdzie mam wstawić

  1. <?php
  2. $icons = array(
  3. 'numerKodu' => 'ikocnka',
  4. '113' => 'sunny.png',
  5. );
  6. ?>


i to $icons['weatherCode']

kurde nieradze sobie z tym (IMG:style_emoticons/default/sad.gif)

Pomozecie mi ?
Go to the top of the page
+Quote Post
ixox
post
Post #9





Grupa: Zarejestrowani
Postów: 51
Pomógł: 13
Dołączył: 8.09.2012

Ostrzeżenie: (0%)
-----


Spróbuj tak:
  1. $weather = simplexml_load_file('http://www.pogodynka.net/api:server/weather/getCurrent.xml?city=pec-pod-sniezka');
  2. echo $weather->temp_C . '°C';
  3. .
  4. .
  5. .
  6.  

Tablicę wstaw przed
  1. $icons[$weather->weatherCode];


Ten post edytował ixox 24.10.2012, 11:58:23
Go to the top of the page
+Quote Post
rafalskula
post
Post #10





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.09.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Składając wszystko to kupy - wyszło mi tak

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. </head>
  6. <body>
  7. <b>Pec pod Śnieżką</b><br><br>
  8.  
  9.  
  10. <?php
  11.  
  12. $icons = array(
  13. 'numerKodu' => 'ikonka',
  14. '116' => 'http://www.pogodynka.net/media/images/weather/Cloudy_Mostly.png',
  15. '119' => 'http://www.pogodynka.net/media/images/weather/Cloudy_Mostly.png',
  16. );
  17. $icons[$weather->weatherCode];
  18.  
  19. $weather = simplexml_load_file('http://www.pogodynka.net/api:server/weather/getCurrent.xml?city=pec-pod-sniezka');
  20. echo $weather->temp_C . '°C';
  21. echo '<br>';
  22. echo $weather->pressure . 'hPa';
  23. echo '<br>';
  24. echo $weather->weatherDesc . '';
  25. echo '<br>';
  26. echo $icons['$weather->weatherCode'];
  27.  
  28. ?>
  29.  
  30. </body>
  31.  
  32. </html>



Wyświetla ta jak pod linkiem Pogoda test

Więc nie mam ikonek ( chmurek , słonek - narazie dałem tylko dwie - 119 i 116 , które wyświetla z xml) - możecie mi to przejżeć - nie wiem co robię żle. Już prawie 20 godzin nad tym siedzę


Z góry dziękuję
Go to the top of the page
+Quote Post
ixox
post
Post #11





Grupa: Zarejestrowani
Postów: 51
Pomógł: 13
Dołączył: 8.09.2012

Ostrzeżenie: (0%)
-----


  1. echo "<img src='" . $icons['$weather->weatherCode'] . "'>";
Go to the top of the page
+Quote Post
Arcioch
post
Post #12





Grupa: Zarejestrowani
Postów: 324
Pomógł: 110
Dołączył: 18.09.2012

Ostrzeżenie: (0%)
-----


Bardzo prosta klasa i nie do końca dobrze napisana (IMG:style_emoticons/default/smile.gif) Musisz sobie ją troszkę przerobić i dostosować bo dzisiaj mam dużo pracy a obiecałem pomóc (IMG:style_emoticons/default/smile.gif) Zabiera ona wszystkie kody ikonek i tłumaczenia do opisów. Ma jedną metodą zwracająca pogodę na obecny dzień (IMG:style_emoticons/default/smile.gif)

Pliki: weather.class.php
  1. <?php
  2. class Weather{
  3.  
  4. //miasto dla którego chcesz otrzymać pogode
  5. public $city;
  6.  
  7. public $icons = array(
  8. '113' => 'sunny.png',
  9. '116' => 'm-cloudy.png',
  10. '119' => 'm-cloudy.png',
  11. '122' => 'm-cloudy.png',
  12. '143' => 'fog.png',
  13. '176' => 'showers.png',
  14. '179' => 'snow.png',
  15. '182' => 'showers.png',
  16. '185' => 'freezing-rain.png',
  17. '200' => 'thunder-storm.png',
  18. '227' => 'blowing-snow.png',
  19. '230' => 'blowing-snow.png',
  20. '248' => 'fog.png',
  21. '260' => 'freezing-rain.png',
  22. '263' => 'drizzle.png',
  23. '266' => 'drizzle.png',
  24. '281' => 'drizzle.png',
  25. '284' => 'drizzle.png',
  26. '293' => 'drizzle.png',
  27. '296' => 'drizzle.png',
  28. '299' => 'drizzle.png',
  29. '302' => 'drizzle.png',
  30. '305' => 'showers.png',
  31. '308' => 'showers.png',
  32. '311' => 'freezing-rain.png',
  33. '314' => 'freezing-rain.png',
  34. '317' => 'rainy-snow.png',
  35. '320' => 'rainy-snow.png',
  36. '323' => 'rainy-snow.png',
  37. '326' => 'snow.png',
  38. '329' => 'snow.png',
  39. '332' => 'snow.png',
  40. '335' => 'snow.png',
  41. '338' => 'snow.png',
  42. '350' => 'flurries.png',
  43. '353' => 'drizzle.png',
  44. '356' => 'rainy.png',
  45. '359' => 'rainy.png',
  46. '362' => 'rainy-snow.png',
  47. '365' => 'rainy-snow.png',
  48. '368' => 'snow.png',
  49. '371' => 'snow.png',
  50. '374' => 'blizzard.png',
  51. '377' => 'blizzard.png',
  52. '386' => 't-storm-rain.png',
  53. '389' => 't-storm-rain.png',
  54. '392' => 't-storm-rain.png',
  55. '395' => 't-storm-rain.png',
  56. );
  57.  
  58. public $pl_translation = array(
  59. '113' => 'Słonecznie',
  60. '116' => 'Częściowe zachmurzenie',
  61. '119' => 'Pochmurnie',
  62. '122' => 'Zachmurzenie',
  63. '143' => 'Mgła',
  64. '176' => 'Opady deszczu',
  65. '179' => 'Opady śniegu',
  66. '182' => 'Opday deszczu',
  67. '185' => 'Marznąca mżawka',
  68. '200' => 'Ogniska grzmotów w pobliżu',
  69. '227' => 'Zamiecie śnieżne',
  70. '230' => 'Zamieć',
  71. '248' => 'Mgła',
  72. '260' => 'Marznąca mgła',
  73. '263' => 'Niejednolita lekka mżawka',
  74. '266' => 'Mała mżawka',
  75. '281' => 'Marznąca mżawka',
  76. '284' => 'Marznąca mżawka',
  77. '293' => 'Lekki deszcz',
  78. '296' => 'Lekki deszcz',
  79. '299' => 'Możliwe opady deszczu',
  80. '302' => 'Małe opady deszczu',
  81. '305' => 'Ulewa',
  82. '308' => 'Ulewa',
  83. '311' => 'Mały marznący deszcz',
  84. '314' => 'Duży marznący deszcz',
  85. '317' => 'Umiarkowane lub duży marznący deszcz',
  86. '320' => 'Lekki deszcz ze śniegiem',
  87. '323' => 'Umiarkowany lub duży deszcz ze śniegiem',
  88. '326' => 'Opady śniegu',
  89. '329' => 'Opady śniegu',
  90. '332' => 'Opady śniegu',
  91. '335' => 'Opady śniegu',
  92. '338' => 'Intenstywne opady śniegu',
  93. '350' => 'Grad',
  94. '353' => 'Lekki deszcz',
  95. '356' => 'Umiarkowany lub duży deszcz',
  96. '359' => 'Ulewny deszcz',
  97. '362' => 'Niewielkie opady deszczu ze śniegiem',
  98. '365' => 'Umiarkowane lub ciężkie opady śniegu z deszczem',
  99. '368' => 'Lekkie opady śniegu',
  100. '371' => 'Umiarkowane lub ciężkie opady śniegu',
  101. '374' => 'Grad',
  102. '377' => 'Grad',
  103. '386' => 'Możliwe burze z opadami deszczu',
  104. '389' => 'Umiarkowany lub silny deszcz w obszarze burzy',
  105. '392' => 'Padający śnieg i burze',
  106. '395' => 'Umiarkowany lub duży śnieg i burze',
  107. );
  108.  
  109. public function set_city($city){
  110. $this->city = $city;
  111. }
  112.  
  113. public function get_weather_today(){
  114. $xml = simplexml_load_file('http://www.pogodynka.net/api:server/weather/getCurrent.xml?city='.$this->city);
  115.  
  116. return array(
  117. 'temp' => $xml->temp_C,
  118. 'pressure' => $xml->pressure,
  119. 'desc' => $this->pl_translation[''.$xml->weatherCode.''],
  120. 'icon' => $this->icons[''.$xml->weatherCode.'']
  121. );
  122. }
  123.  
  124. }


Pliki index.php
  1. <?php
  2. include_once('weather.class.php');
  3. $weather = new Weather;
  4. $weather->set_city('pec-pod-sniezka');
  5. $wether_today = $weather->get_weather_today();
  6. ?>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  12. </head>
  13. <body>
  14. <b>Pec pod Śnieżką</b><br><br>
  15. </body>
  16. Temp: <?= $wether_today['temp'] ?> stopni cel<br>
  17. Ciśnienie: <?= $wether_today['pressure'] ?> hPa<br>
  18. Opis: <?= $wether_today['desc'] ?> <br>
  19. Ikonka: <img src="icons/<?= $wether_today['icon'] ?>" />
  20. </html>


Całość spakowana z ikonami (IMG:style_emoticons/default/smile.gif)
http://www.speedyshare.com/qK33e/pogoda.rar
Go to the top of the page
+Quote Post
rafalskula
post
Post #13





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.09.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Dziękuję za pomoc. Wszytko działa. Jedyne co zaobserwowałem, to pogodynka nie podaje pomiarów danej miejscowości tylko okolic - w tym przypadku mowa o Czechach.

Pozdrawiam
Go to the top of the page
+Quote Post
brzanek
post
Post #14





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


A słuchajcie jak można pobrać prognozę na kolejne dni. API niby umożliwia to ale nie wiem jak to zrobić.
Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 06:37