Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z pogodą
Forum PHP.pl > Forum > Przedszkole
Konuss
  1. <?php
  2.  
  3. // Zmień 1201286 na kod swojego miasta
  4. $url = 'http://pogoda.wp.pl/mi.html?mid=1201099';
  5.  
  6.  
  7. // Pobieranie i wy?wietlanie danych
  8. $link = curl_init($url);
  9. curl_setopt($link, CURLOPT_REFERER, 'http://pogoda.wp.pl');
  10. curl_setopt($link, CURLOPT_RETURNTRANSFER, TRUE);
  11.  
  12. $wynik = curl_exec($link);
  13. curl_close($link);
  14.  
  15. $wynik = explode('<div style="float:right; width:40%; font-family: Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; color:rgb(0, 0, 0); text-align:right; padding-top:5px;">', $wynik, 2);
  16. $wynik = explode('<!--div class="boxMorePrognoza"><a href="#psz">Prognoza szczegółowa</a> &raquo; &nbsp;&nbsp;&nbsp;&nbsp; <a href="#puz">Twoje obserwacje</a> &raquo;</div-->', $wynik[1], 2);
  17. $wynik = explode("\n", trim($wynik[0]));
  18.  
  19. $start = strpos($wynik[15], '<strong>')+8;
  20. $len = strpos($wynik[15], '</strong>')-$start;
  21. $start1 = strpos($wynik[15], '<strong>', 1)+8;
  22. $len1 = strpos($wynik[15], '</strong>', 1)-$start1;
  23. $temp_start = substr($wynik[15], $start, $len);
  24. $temp_stop = substr($wynik[15], $start1, $len1);
  25. if($temp_start=$temp_stop) {
  26. $dane['temperatura'] = $temp_start;
  27. }
  28. else
  29. {
  30. $date['temperatura'] = 'od '.$temp_start.' do '.$temp_stop;
  31. }
  32.  
  33. $start = strpos($wynik[19], 'alt="')+5;
  34. $len = strpos($wynik[19], '">')-$start;
  35. $dane['wiatr']['kierunek'] = substr($wynik[19], $start, $len);
  36.  
  37. $start = strpos($wynik[19], '<strong>')+8;
  38. $len = strpos($wynik[19], '</strong>')-$start;
  39. $dane['wiatr']['szybkosc'] = substr($wynik[19], $start, $len);
  40.  
  41. $start = strpos($wynik[23], '<strong>')+8;
  42. $len = strpos($wynik[23], '</strong>')-$start;
  43. $dane['wiatr']['chlodzenie'] = substr($wynik[23], $start, $len);
  44.  
  45. $start = strpos($wynik[32], '<strong>')+8;
  46. $len = strpos($wynik[32], '</strong>')-$start;
  47. $dane['wschod'] = substr($wynik[32], $start, $len);
  48.  
  49. $start = strpos($wynik[33], '">')+2;
  50. $len = strpos($wynik[33], '</strong>')-$start;
  51. $dane['zachod'] = substr($wynik[33], $start, $len);
  52.  
  53. echo '<html>
  54. <head>
  55. <base href="http://pogoda.wp.pl">
  56. <style type="text/css">
  57. body {
  58. font-family: Verdana, sans-serif;
  59. font-size: 10px;
  60. }
  61. h1 {
  62. font-size: 14px;
  63. font-weight: bold;
  64. }
  65. .sub {
  66. font-size: 13px;
  67. }
  68. </style>
  69. </head>
  70. <body> 
  71. <table width="308" border="0" cellspacing="0" cellpadding="0"> 
  72. <tr> 
  73. <td width="90" style="padding-left: 4px;" valign="top">'.str_replace(array('height="83" ', 'width="83" ', 'border="0" '), array('/'), trim($wynik[7])).'</td> 
  74. <td width="218" valign="top">'.strip_tags($wynik[11]).'<br> 
  75. <b>Temperatura:</b> '.$dane['temperatura'].'<br> 
  76. <b>Kierunek wiatru:</b> '.$dane['wiatr']['kierunek'].'<br/> 
  77. <b>Szybkość wiatru:</b> '.$dane['wiatr']['szybkosc'].'<br/> 
  78. <b>Czynnik chłodzący:</b> '.$dane['wiatr']['chlodzenie'].'</td> 
  79. </tr> 
  80. <tr> 
  81. <td width="308" height="1" colspan="2" align="center"> 
  82. <table width="98%" border="0" cellspacing="0" cellpadding="0"> 
  83. <tr> 
  84. <td height="1" background="theme/konin/images/odstep_poz.gif"></td> 
  85. </tr> 
  86. </table> 
  87. </td> 
  88. </tr> 
  89. </table>';
  90. ?>


Mam taki kod pogody pobierającym ja z serwisu wp.pl. I mam taki klopot skrypt ten przejmuj mi linki tzn mam link do pliku login.php w takiej formie a on mi robi http://pogoda.wp.pl/login.php Proszę o pomoc jak to naprawic smile.gif Serdecznie dziekuje smile.gif
webdice
  1. <base href="" />

?
Konuss
Nie rozumiem przepraszam sad.gif Nie chciałbym aby cos mi dodwał przed np login.php czy inne linki podobne bo wali mi cały system przez to sad.gif
webdice
Dodaj

  1. <base href="http://twoja_domena.pl/" />


albo usuń base z Twojego kodu.
Konuss
Tak też zrobiłem i teraz mi przejmuje moj adres i jest problem poniewaz nie działa mi logowanie tzn: jest http://ekonin.net/login.php i nie działa mi logowanie a jak było by logowanie na plik login.php a nie na htp://ekonin.net/login.php jak to zrobic sad.gif Proszę o pomoc. Dodam że w skrypcie jest ustawione jedynie login.php sad.gif

Prosze o pomoc sad.gif

Nadal proszę o pomoc jak sobie z tym poradzic ale widzę zlewacje takich lajków jak ja biggrin.gif
roobik
Witam!
Odświeżę temat - nie chcę zakładać nowego, a sprawa dotyczy właśnie tego skryptu.

Przerobiłem nieco skrypt, by nie zapisywał danych do bazy. Chcę wyświetlić dane dla Wrocławia:
$url = 'http://pogoda.wp.pl/miasto,wroclaw,mid,1201305,mi.html';

Porobiłem co trzeba, lecz wyświetla mi "za dużo". A dokładnie mówiąc WSZYSTKO, co na tej stronie się znajduje wink.gif
Ja chcę tylko pogodę na "dziś" w stylu:
Pogoda na dzisiaj (data):
Temp min: xx'C | Temp max: xx'C

Nawet gdy daję
  1. print_r($dane);

lub
  1. print_r($szukaj);

To tablice są puste, a mimo to wyświetla wszystko (m.in. ogólna prognoza pogody na najbliższe dni). W jaki sposób mogę uzyskać tylko temp min i max na "dziś" ?

Bardzo proszę o odp...

Pozdrawiam!

ps.
mój kod:
  1. <?
  2. // Pobieranie danych
  3.  
  4. $datalink = curl_init($pogoda_url);
  5. curl_setopt($datalink, CURLOPT_REFERER, 'http://pogoda.wp.pl');
  6. curl_setopt($datalink, CURLOPT_RETURNTRANSFER, TRUE);
  7.  
  8. $wynik = curl_exec($datalink);
  9. curl_close($datalink);
  10.  
  11.  
  12.  
  13.  
  14. // Wyci?cie kawa?ka, potrzebne zamiany
  15. $start = strpos($wynik, '<div class="hdMain"', $wynik);
  16. $stop = strpos($wynik, '<br class="b5"/>', $wynik);
  17. $wynik = substr($wynik, $start, $stop-$start);
  18. $wynik = str_replace('<strong style="padding-left: 2px;">', '<strong>', $wynik);
  19.  
  20. // Wyci?ganie danych
  21. $dzien = trim(strip_tags(substr($wynik, 0, strpos($wynik, '</div>'))));
  22. $szukaj = array(
  23. '<strong>' => array(
  24. '</strong>',
  25. 'miasto',
  26. 'temp_max',
  27. 'temp_min',
  28. 'wiatr_szybkosc',
  29. 'wiatr_chlodzenie',
  30. 'wschod',
  31. 'zachod',
  32. ),
  33. '<div class="chmurka">' => array(
  34. '</div>',
  35. 'obrazek',
  36. ),
  37. '<div class="opis">' => array(
  38. '</div>',
  39. 'opis',
  40. ),
  41. '.gif" alt="' => array(
  42. '"',
  43. 'spacja',
  44. 'wiatr_kierunek',
  45. ),
  46. );
  47.  
  48. $dane = array();
  49.  
  50. foreach($szukaj as $patt => $info) {
  51. $stop = 0;
  52. $len = strlen($patt);
  53. for($i=0; $i < count($info)-1; $i++) {
  54. $start = strpos($wynik, $patt, $stop)+$len;
  55. //$stop = strpos($wynik, $info[0], $start); // W TEJ LINI BYL BLAD STRPOS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  56. $dane[ $info[$i+1] ] = trim(substr($wynik, $start, $stop-$start));
  57. }
  58. }
  59.  
  60. if($dane['temp_min'] == $dane['temp_max']) {
  61. $dane['temp'] = $dane['temp_min'];
  62. }
  63. else
  64. {
  65. $dane['temp'] = 'od '.$dane['temp_min'].' do '.$dane['temp_max'];
  66. }
  67. echo '<br><br>TABLICA DANE: '; print_r($dane);
  68. echo '<br><br>TABLICA SZUKAJ: '; print_r($szukaj);
  69.  
  70. ?>
at
Ja też prosze o odp
d3ut3r
Z tego co wiem, to takie parsowanie pogody z wp.pl jest raczej nie legalne. Do prostych danych pogodowych lepiej moim zdaniem skorzystać, z "półoficjalnego" API od Google.

http://krzysztofplaczek.name/main/articles...le_weather_feed
moorva
A ja mam taki kod (działa)
  1. <?php
  2. $url='http://pogoda.wp.pl/miasto,bydgoszcz,mid,1201023,mi.html';
  3. $link = curl_init($url);
  4. curl_setopt($link, CURLOPT_REFERER, 'http://pogoda.wp.pl');
  5. curl_setopt($link, CURLOPT_RETURNTRANSFER, TRUE);
  6. $wynik = curl_exec($link);
  7. curl_close($link);
  8. $values=array();
  9. $source=$wynik;
  10. // MIASTO
  11. $px=explode('<h1 style="font-size: 18px; display: inline;">',$source);
  12. $px=explode('</h1>',$px[1]);
  13. $values['miasto']=$px[0];
  14. // DZIEN
  15. $px=explode('<div class="hdMain" style="margin:0px; padding:0px 0px 5px;">',$source);
  16. $px=explode(' ',strip_tags($px[1]));
  17. $values['dzien']=$px[0].' '.$px[1].' '.$px[2].' '.$px[3];
  18. // TEMPERATURA
  19. $px=explode('<div class="temp">',$source);
  20. $px=explode('</div>',$px[1]);
  21. $px=strip_tags($px[0]);
  22. $px=explode(':', $px);
  23. $px1=explode('t', $px[1]);
  24. $values['temp_min']=$px1[0];
  25. $values['temp_max']=$px[2];
  26. // WIATR CHL
  27. $px=explode('<div class="czynnik">',$source);
  28. $px=explode('</div>',$px[1]);
  29. $px=explode(': ', strip_tags($px[0]));
  30. $values['wiatr_chlodzenie']=$px[1];
  31. // WIATR KIER
  32. $px=explode('<div class="wiatr">',$source);
  33. $px=explode('</div>',$px[1]);
  34. $px=explode('tr ', $px[0]);
  35. $px=explode('<',$px[1]);
  36. $values['wiatr_kierunek']=$px[0];
  37. // WIATR SZYB
  38. $px=explode('<div class="wiatr">',$source);
  39. $px=explode('</div>',$px[1]);
  40. $px=explode($values['wiatr_kierunek'], strip_tags($px[0]));
  41. $values['wiatr_szybkosc']=$px[1];
  42. // SLONCE
  43. $px=explode('<div class="slonce">',$source);
  44. $px=explode('</div>',$px[1]);
  45. $px=explode('ca:', strip_tags($px[0]));
  46. $px2=explode('Z',$px[1]);
  47. $values['zachod']=$px[2];
  48. $values['wschod']=$px2[0];
  49. // CHMURKA
  50. $px=explode('<div class="chmurka">',$source);
  51. $px=explode('</div>',$px[1]);
  52. $values['chmurka']=str_replace('<br />','',$px[0]);
  53. ?>
  54. <style type="text/css">
  55. body {
  56. font-family: Verdana, sans-serif;
  57. font-size: 10px;
  58. }
  59. h1 {
  60. font-size: 14px;
  61. font-weight: bold;
  62. }
  63. .sub {
  64. font-size: 13px;
  65. }
  66. </style>
  67. <?
  68. echo '<h1>'.$values['dzien'].'.<br> Pogoda dla miejscowości '.$values['miasto'].'</h1><hr width="300px">
  69. <p>'.$values['chmurka'].'</p>
  70.  
  71. <p><b>Temperatura:</b> od '.$values['temp_min'].' do '.$values['temp_max'].'</p>
  72.  
  73. <p><b>Kierunek wiatru:</b> '.$values['wiatr_kierunek'].'<br>
  74. <b>Szybkośa wiatru:</b> '.$values['wiatr_szybkosc'].'<br>
  75. <b>Czynnik ch3odzący:</b> '.$values['wiatr_chlodzenie'].'</p>
  76.  
  77. <p><b>Wschód s3onca:</b> '.$values['wschod'].'<br>
  78. <b>Zachód s3onca:</b> '.$values['zachod'].'</p>
  79. <hr width="300px">
  80. ';
  81.  
  82. ?>

Skrypt wyświetla chmurki z wp.pl - jak zrobić by wyświetlało moje własne chmurki?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.