Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pogoda
Forum PHP.pl > Forum > Gotowe rozwiązania
Stron: 1, 2
miszqa
czy ktos wie skad mozna sciagnac informacje pogodowe. glownie chodzi mi o temperature w dzien i nocy oraz sile wiatru jak i o informacje czy jest zachmurzenie czy nie. Interesuje mnie jak napisac skrypt aby sciagal takie informacje z jakiejs strony i wstawial ja u mnie. Informacje pogodowe chce aby dotyczyly miasta Suwalk. Poniewaz jestem zielony i nie wiem jak to zrobic pytam o to Was.

Z gory wielkie dzieki
menic
łaczysz sie z jakąs stroną na której są takie informacje np. wp.pl za pomocą [manual:eb728048ff]fopen[/manual:eb728048ff](). Następnie odpowiedni przy użyciu [manual:eb728048ff]preg_match[/manual:eb728048ff]() pobierasz z pliku potrzebne informacje. I skorzystaj z szukarki bo na forum już był podobny przykład pobierania czegoś takiego
miszqa
no dobra popatrzmy na te dane na www.pogoda.wp.pl
i teraz jest taki motyw iz chcialbym pobrac tylko obrazek, do tego predkosc wiatru i temperature. I problem jest w tym ze nie wiem jakmialbym to wyciagnac.

Moze jakis maly skrypcik questionmark.gif?

a co do wyszukania to nie znalazlem w miare zrozumialego jak dla mnie postu. Wiem ze jestescie wymiataczami i ze nudza juz was takie pytania ale moze jednak sie uda pomoc laikowi. A pozniej zawsze mozna skasowac tego posta prawda ?
nobody
Cytat
jest taki motyw iz chcialbym pobrac tylko obrazek

A html'a znasz?
Kod
<img src="http://www.pogoda.wp.pl/i/general/country/POL/forecast/2004.01.15.png">

Jesli nazwa obrazka sie zmienia (razem z data) to generuj ja poprzez skrypt php i nazwe obrazka dawaj jako rok.miesiac.dzien.png.
No i nie wiem do konca czy to takie zgodne z prawem...
miszqa
no wieszz jak napisalem na samym obrazku to nie konczy sie
poza tym co do prawa to chyba nie powinni miec nic przeciwko temu jesli zrodlo pobrania umieszcze :-))

ale to juz inna sprawa ja chce tylko wyciagnac obrazek wiec jak napisales uzyc htmla, no ale co dalej z tekstem questionmark.gif?
Chewolf
Skrypt do pokazywania obrazka :
[php:1:f6b1ac2dd2]<?
$data_do_obrazka = date("Y.m.d");
echo '<IMG SRC=http://www.pogoda.wp.pl/i/general/country/POL/forecast/'.$data_do_obrazka.'.png'.' BORDER=0>';
?>[/php:1:f6b1ac2dd2]
miszqa
no dobra a co z tekstem ktory bedzie wypisywal aktualna temperature przeciez to nie jest na obrazku questionmark.gif?
nobody
[php:1:6e7c5dab20]<?php
$act_date=date("Y.m.d");
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201135&date=$act_date", "r") or die("Nie moge otworzyc strony");
while($code=fgets($i, 1024)){
preg_match("/temp. min:(.*)C/", $code, $out);
print $out[0];
}
fclose($i);
?>[/php:1:6e7c5dab20]
Przyklad pokazuje temp. minimalna dla Lublina...chcesz wiecej to pokombinuj :idea:
miszqa
dobra ja nadal czegos tutaj nie lapie ?
jesli ktos moze wytlumaczyc mi ta linie questionmark.gif?

$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201135&date=$act_date", "r")

napewno juz jestem na dobrym tropie ale jeszcze ten kodzik
nobody
http://www.pogoda.wp.pl/mi.html?POD=1&mid=...date=2004.01.16 pod tym adresem znajduje sie strona, ktora wyswietla informacje o pogodzie dla Lublina na dzien 2004.01.16. Wiec w skrypcie otwierasz ta strone i zamiast pisac 2004.01.16 skrypt automatycznie generuje Ci aktualna date, tak wiec zawsze bedzie wyswietlal informacje z biezacego dnia. Zwracany jest "uchwyt" do tego pliku, wykorzystywany w dalszym kodzie. @ przed fopen spowoduje, ze w razie, gdy skrypt nie bedzie mogl otworzyc URL'a nie wywali bledu. Easy...
Update: Manual [manual:c0abfa8c80]fopen[/manual:c0abfa8c80]
miszqa
a jeszcze male pytanko
skoro juz to wyszlo teraz z kolei skad mam wiedziec jaki obrazek mam pobrac dla dzisiejszej daty i jak pobierac kolejne dane np na temat wiatru
sorka za natretne pytania ale w koncu musze sie tego nauczyc a bez wyjasnien nie da rady samemu
nobody
Trzeba odpowiednio sformulowac wyrazenie regularne, dla przykladu wiatr:
[php:1:d4967bebfe]<?php preg_match("/Wiatr(.*)m/s/", $code, $out); ?>[/php:1:d4967bebfe]
Wiecej o tym znajdziesz na forum, na googlach, w manualu itd.
Co do obrazka to przyklad skryptu wyswietlajacego obrazek z aktualna pogoda podal Ci @m5910, chociaz teraz zauwazylem, ze jak nie przypiszesz w tym URL'u wartosci zmiennej date to skrypt (ten na WP) automatycznie wstawi aktualna date.
miszqa
no tak ale to byl przyklad do mapy polski a mi chodzi tylko o malutki fragmencik czyli np dla lublina aby wyswietlilo tylko chmurke
a to przeciez bedzie sie zmieniac wiec tez trzeba jakiegos skrypta sypnac
miszqa
wlasnie chodzi mi o cos takiego jak wskazal indianin ale chcialbym aby to bylo bazowane na pogoda.wp.pl skoro juz zaczeto pisac skrypt. No i temat mnie interesujacy dotyczy miasta Suwalki. No i jak zauwazylem indianin przedstawil pomysl w jsp a nie php
rozny
no to wez teraz na strone zaincluduj tego url'a i ci sie powinno wyświetlić...
[php:1:289ae62807]<?php
include "http://twojemiasto.gazeta.pl//art/946/j946144.jsp";
?>[/php:1:289ae62807]

Jedyny problem jest taki, że w na tamtej stronie url do obrazka podany jest względnie więc ci się nie wyświetlą te chmurki, ale temperatura będzie wyświetlana...

A indianin pomysłu nie przedstawił tylko podał url do strony wyświetlającej te informacje, która jest napisana w jsp, a to nie ma wogóle znaczenia dla twojego skryptu...
miszqa
no tak ale nie chodzi mi o typowe includowanie ile o rozwiazanie takie jak napisalem nieco wyzej tj o sciaganie obrazka z serwisu pogoda.wp.pl. Faktem jest iz includowanie tak jak to ty wykonales jest tez rozwiazaniem ale chcialbym juz do konca rozwiazac problem przechwytywania obrazkow z serwisu pogoda.wp.pl
Bede bardzo wdzieczny aby ten problem dociagnac do konca
miszqa
i poza tym chodzi mi o miasto suwalki wiec wolalbym konkretne przyklady oparte juz o ta miejscowosc
rozny
No rozumiem.. Pokombinuje coś później, może coś wywmyśle, bo narazie nie wiem jak to zrobić winksmiley.jpg
Indianin
[php:1:82f82acd29]<?php

$GrabURL = "http://pogoda.wp.pl/mi.html?POD=1&mid=1201261&date=";
$GrabStart = "<br><br><img src="";
$GrabEnd = "<br><br>temp";
#####
$OpenFile = fopen("$GrabURL", "r");
$RetrieveFile = fread($OpenFile, 200000);
$GrabData = eregi("$GrabStart(.*)$GrabEnd", $RetrieveFile, $DataPrint);
$DataPrint[1] = str_replace("i/", "<img src="http://pogoda.wp.pl/i/", $DataPrint[1]);

fclose($OpenFile);
echo " $DataPrint[1]";

?>[/php:1:82f82acd29]
miszqa
<?php
$act_date=date("Y.m.d");
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201261&date=$act_date", "r")
or die("Nie moge otworzyc strony");
while($code=fgets($i, 1024)){
preg_match("/temp. min:(.*)C/", $code, $out);
print $out[0];
preg_match("/Wiatr (.*)m/s/", $code, $out1);
print $out1[1];
}
fclose($i);
?> [php:1:c901acde1f]<?php

to juz inna sprawa ale dlaczego po wpisaniu echo "<br>"; w petli nie wyswietla mi nic i co mam zrobic aby zrobic wyswietlanie w dwoch liniach a nie jednej? moze ktos wskazac moj blad ?
?>[/php:1:c901acde1f]
Foxx
Chyba coś Ci się pomieszało ze znacznikami tongue.gif
[php:1:5ca93cb335]
<?php
$act_date=date("Y.m.d");
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201261&date=$act_date", "r")
or die("Nie moge otworzyc strony");
while($code=fgets($i, 1024)){
preg_match("/temp. min:(.*)C/", $code, $out);
print $out[0]."<br>";
preg_match("/Wiatr (.*)m/s/", $code, $out1);
print $out1[1]."<br>";
}
fclose($i);
?>[/php:1:5ca93cb335]
Wypróbuj tak a jak nie zadziała to pokaż jak robisz
miszqa
no wlasnie nie dziala bo nie wyswietla nic i nie wiem czemu przez dodanie znacznika <br> wszystko sie sypie
Foxx
Hmm... miałeś wypróbować mój kod (zmieniłem trochę) a jeżeli nie zadziała miałeś wkleić swój.
miszqa
moj jest wyzej a ja wstawialem echo "<br>" pomiedzy print...
ale tez nie dzialalo i nie wiem co jest
Foxx
Eh.
1. Czy na pewno wyświetla cokolwiek bez echo "<br>"; :?:
2. Czy wypróbowałeś kod który ja podałem :?:
3. Czy możesz wkleić kod który NIE działa Tobie :?:
miszqa
[php:1:de5b5d115d]<?php

$act_date=date("Y.m.d");
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201261&date=$act_date", "r")
or die("Nie moge otworzyc strony");
while($code=fgets($i, 1024)){
preg_match("/temp. min:(.*)C/", $code, $out);
print $out[0]."<br>";
preg_match("/Wiatr (.*)m/s/", $code, $out1);
print $out1[1]."<br>";
}
fclose($i);
?>[/php:1:de5b5d115d]
to dziala ale nie wyswietla tak jak bym chcial
Foxx
A jak byś chciał ?
Kiedy piszesz że nie działa tak jak chcesz to jest dopiero połowa sukcesu
Oszczędź czas wszystkim i nie czekaj na
Cytat
A jak byś chciał ?
miszqa
widzisz ja jestem poczatkujacy i chodzi mi o to aby wyswietlalo temp. min iles tam a pod spodem wyswietlalo wiatr taki i taki i nie wiem czemu po dodaniu dodatkowego znacznika [php:1:a9673cac75]<?php
echo "<br>"
?>[/php:1:a9673cac75]
wszystko sie zaczyna psuc i nie wyswietla nic questionmark.gif?
wiec moze ktos mi pomoze no chyba ze to jest tak trywialne ze bede musial poswiecic na to wiecej czasu i za kazdym razem pytac o jakies bzdury posrednio zwiazane z tym tematem.
A wydaje mi sie ze lepiej skonczyc to w tym temacie niz rozbijac to na pojedyncze posty i zapychac serwer.
Foxx
A dodajesz średnik na końcu?
Posłuchaj - prosiłem cię kilka razy żebyś pokazał kod który Ci NIE działa
Nie potrafię już wyraźniej tego napisać. Rób jak uważasz.
miszqa
[php:1:f1b8044b24]<?php

$act_date=date("Y.m.d");
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201135&date=$act_date", "r")
or die("Nie moge otworzyc strony");
while($code=fgets($i, 1024)){
preg_match("/temp. min:(.*)C/", $code, $out);
print $out[0];
}
?> <br> <?
while($code=fgets($i, 1024)){
preg_match("/Wiatr(.*)m/s/", $code, $out1);
print $out1[1];
}
fclose($i);
?>[/php:1:f1b8044b24]
probowalem to zrobic tak ale tez mi nie dziala
Foxx
[php:1:88d40b2b44]<?php
$act_date=date("Y.m.d");
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201261&date=$act_date", "r")
or die("Nie moge otworzyc strony");
while($code=fgets($i, 1024)){
preg_match("/temp. min:(.*)C/", $code, $out);
echo "Temp. min : ".$out[0]."<br>";
preg_match("/Wiatr (.*)m/s/", $code, $out1);
echo "Wiatr: ".$out1[1]."<br>";
}
fclose($i);
?>[/php:1:88d40b2b44]
A jezeli nie to napisz jak wyświetliło a jak chciałbyś.
Bakus
Może nie jest to do końca to, o co chodzi w głównym wątku, ale zapraszam:
Pogodzia
miszqa
foxx to moze napiszesz mi jeszcze czemu wykonuje to taka wielka petle.
Bo jak uruchomilem twoj skrypt wykonalo petle z kilkanascie razy zanim dostarczylo wyniki a pozniej znow zaczelo wykonywac petle
Foxx
Po pierwsze to jest Twój skrypt tongue.gif
Zrób tak:
[php:1:42eb60a549]<?php
$act_date=date("Y.m.d");
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201261&date=$act_date", "r")
or die("Nie moge otworzyc strony");
while($code=fgets($i, 1024)){
if(preg_match("/temp. min:(.*)C/", $code, $out)){
echo "Temp. min : ".$out[0]."<br>";
}
if(preg_match("/Wiatr (.*)m/s/", $code, $out1)){
echo "Wiatr: ".$out1[1]."<br>";
}
}
fclose($i);
?>[/php:1:42eb60a549]
Rozwiązanie: skrypt działał tak:
-biorę linię z podanego pliku
-sprawdzam czy jest tam wyrażenie "pogoda min cośtam"
-wyswietlam "pogoda min cośtam"
-to samo dla temperatury
A powino być tak:
-biorę linię z podanego pliku
-sprawdzam czy jest tam wyrażenie "pogoda min cośtam"
-jeżeli jest to wyswietlam "pogoda min cośtam"
-to samo dla temperatury

Sam mogłeś na to wpaść[/b]
miszqa
wiesz ja jestem poczatkujacy i nie jestem na tyle obcykany tak jak ty ale podajesz wytlumaczenie wiec jestem wdzieczny a mi chodzi o to aby sie nauczyc ze zrozumieniem a nie z bledami wiec sam wiesz...
a napewno jak sam zaczynales miales wiele pytan i tez czesto pytales... ale nie kazdy rodzi sie geniuszem moze ty nim jestes bo ja nie (oczywiscie bez obrazy)
Bakus
OT
Cytat
wiesz ja jestem poczatkujacy i nie jestem na tyle obcykany tak jak ty ale podajesz wytlumaczenie wiec jestem wdzieczny a mi chodzi o to aby sie nauczyc ze zrozumieniem a nie z bledami wiec sam wiesz...
a napewno jak sam zaczynales miales wiele pytan i tez czesto pytales... ale nie kazdy rodzi sie geniuszem moze ty nim jestes bo ja nie (oczywiscie bez obrazy)

HeHe...
Każdy z nas kiedyś zaczynał...
Jak będziesz miał chwilę wolnego czasu poprzeglądaj sobie pierwsze posty Wielkich ludzi tego forum... Miło popatrzeć, że oni też mieli niekiedy banalne do rozwiąznia problemy... winksmiley.jpg

Tak, by nie być gołosłownym:
http://forum.php.pl/viewtopic.php?t=147
http://forum.php.pl/viewtopic.php?p=364

winksmiley.jpg Seth w dniu dzisiejszym chyba by sam zablokował takie topiki odsyłając użytkowników do wszystkich diabłów - znaczy się do wyszukiwarki forum... winksmiley.jpg
Foxx
@miszqa: Masz rację, ale nie wkurzam się że pytasz - chodziło mi o przeanalizowanie działania programu - to był klucz do rozwiązania problemu.
Cytat
napewno jak sam zaczynales

Jestem początkujący biggrin.gif/
miszqa
no dobra wiec czy jednak ktos moze naprawic ten skrypt aby wyswietlany byl prawidlowo i bezblednie moze wtedy odpuszcze wreszcie ten temat.

Poza tym dzieki za slowa otuchy :-))
Seth
Cytat
winksmiley.jpg Seth w dniu dzisiejszym chyba by sam zablokował takie topiki odsyłając użytkowników do wszystkich diabłów - znaczy się do wyszukiwarki forum... winksmiley.jpg

Nie. Bo byly zgodne z regulaminem i nie obrazaly nikogo winksmiley.jpg
Foxx
Cytat
czy jednak ktos moze naprawic ten skrypt aby wyswietlany byl prawidlowo i bezblednie  

Myślalem że moja ostatnia wersja jest ok
Jak go uruchamiam to wyświetla mi :
Cytat
Temp. min : temp. min: -3 °C
Wiatr: zachodni o prędkości 3

Trzeba tylko trochę poczekać aż się połączy
Wiec zakładam że chodzi Ci o to ze się dwa razy wyświetla "Temp. min"
tu jest bez tego:
[php:1:f9d045d646]
<?php
$act_date=date("Y.m.d");
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201261&date=$act_date", "r")
or die("Nie moge otworzyc strony");
while($code=fgets($i, 1024)){
if(preg_match("/temp. min:(.*)C/", $code, $out)){
echo $out[0]."<br>";
}
if(preg_match("/Wiatr (.*)m/s/", $code, $out1)){
echo "wiatr: ".$out1[1]."<br>";
}
}
fclose($i);
?>[/php:1:f9d045d646]
Czy może coś innego nie działa :?:
miszqa
no mysle ze na tym zakonczymy dreczenie uzytkownikow bo otrzymalem to czego chcialem

wielkie dzieki
szoszon3
Witam ! po uruchomieniu skryptu pogody
Cytat
<?php  
$act_date=date("Y.m.d");      
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201273&date=$act_date", "r")      
or die("Nie moge otworzyc strony");      
while($code=fgets($i, 1024)){      
   if(preg_match("/temp. min:(.*)C/", $code, $out)){      
             echo $out[0]."<br>";      
   }  
   if(preg_match("/Wiatr (.*)m/s/", $code, $out1)){      
             echo "wiatr: ".$out1[1]."<br>";      
   }  
}      
fclose($i);    
?>

Rezultal jes taki :
pog
temp. min: -9 °C
wiatr: południowo-zachodni o prędkości 3
co zrobic aby napis wiatr nie byl pogrubiony
dob
Bez formatowania :

[php:1:3176d90e29]
<?php
$act_date=date("Y.m.d");
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201273&date=$act_date", "r")
or die("Nie moge otworzyc strony");
while($code=fgets($i, 1024)){
if(preg_match("/temp. min:(.*)C/", $code, $out)){
echo strip_tags($out[0])."<br>";
}
if(preg_match("/Wiatr (.*)m/s/", $code, $out1)){
echo "wiatr: ".strip_tags($out1[1])."<br>";
}
}
fclose($i); ?>[/php:1:3176d90e29]

ewentualnie dla osiagniecia takiego wyniku :
temp. min: -9 °C
wiatr: południowo-zachodni o prędko&para;ci 3 zastosuj taki kod :
[php:1:3176d90e29]<?php
$act_date=date("Y.m.d");
$i=@fopen("http://www.pogoda.wp.pl/mi.html?POD=1&mid=1201273&date=$act_date", "r")
or die("Nie moge otworzyc strony");
while($code=fgets($i, 1024)){
if(preg_match("/temp. min:(.*)C/", $code, $out)){
echo $out[0]."</b><br>";
}
if(preg_match("/Wiatr (.*)m/s/", $code, $out1)){
echo "wiatr: <b>".strip_tags($out1[1])."</b><br>";
}
}
fclose($i); ?>[/php:1:3176d90e29]
radac78
Skrypcik bardzo fajny i w zasadzie prosty w konfiguracji. Jedyny problem, to jezeli nie ma strony zaciaganej przez skrypt to dalesze elementy na stronie nie sa wyswietlane.
Skrypt mam zaincludowany w jednym z div'ow. Przy sprawdzemniu na localhoscie (odlaczonym od netu) divy dalsze niz ten ze skryptem nie sa juz wyswietlane. W jaki sposob mozna umozliwic wyswietlanie dalsze strony?
tiraeth
Człowieku skąd ty odkopałeś tego posta smile.gif Już ponad rok minął kiedy to było napisane smile.gif

Moderator! Zamknąć topic biggrin.gif
radac78
Wiec twoim zdaniem lepiej rozpoczac nowy topic ... i znow narzekania ze temat juz byl questionmark.gif smile.gif
tiraeth
radac78: moim zdaniem temat jest tak nieaktualny (ten temat), że nikt na niego nie odpowie.. lepiej poszukać na forum 'nowszego' skryptu pogody...
mike
Cytat(radac78 @ 2005-03-26 14:05:06)
Wiec twoim zdaniem lepiej rozpoczac nowy topic ... (...)

Cytat(Tiraeth @ 2005-03-26 14:27:31)
(...) lepiej poszukać na forum 'nowszego' skryptu pogody...

[klasa] Pogoda winksmiley.jpg
-SaraniS-
Cytat(mike_mech @ 2005-03-27 22:30:57)

A co maja zrobic ci ktorzy nie moga uzywac PHP5? blink.gif Sam jestem w takiej sytuacji, i niestety jedyne rozwiazanie to wykorzystac starsze skrypty dry.gif
Poza tym mojej malej miejscowosci nie ma w kanalach Weather (moze byc Under, moze byc z Yahoo, wszystko jedno winksmiley.jpg ), ani nawet na WP - jest w Interii tongue.gif Pozostaje mi wiec niestety przerobic podanego tu parsera tak aby pobieral i wyswietlal to co chce, wlasnie z Interii cool.gif
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.