miszqa
15.01.2004, 14:55:58
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
15.01.2004, 14:59:02
ł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
15.01.2004, 15:07:46
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

?
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
15.01.2004, 15:13:40
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
15.01.2004, 15:34:27
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

?
Chewolf
15.01.2004, 15:59:53
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
16.01.2004, 12:13:19
no dobra a co z tekstem ktory bedzie wypisywal aktualna temperature przeciez to nie jest na obrazku

?
nobody
16.01.2004, 12:43:22
[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
16.01.2004, 13:21:59
dobra ja nadal czegos tutaj nie lapie ?
jesli ktos moze wytlumaczyc mi ta linie

?
$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
16.01.2004, 13:27:30
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
16.01.2004, 13:36:42
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
16.01.2004, 13:45:31
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
16.01.2004, 13:54:12
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
Indianin
16.01.2004, 14:40:50
miszqa
16.01.2004, 18:36:13
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
16.01.2004, 18:59:28
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
16.01.2004, 19:04:38
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
16.01.2004, 19:06:49
i poza tym chodzi mi o miasto suwalki wiec wolalbym konkretne przyklady oparte juz o ta miejscowosc
rozny
16.01.2004, 19:31:44
No rozumiem.. Pokombinuje coś później, może coś wywmyśle, bo narazie nie wiem jak to zrobić
Indianin
16.01.2004, 20:34:24
[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
16.01.2004, 22:14:03
<?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
16.01.2004, 22:18:13
Chyba coś Ci się pomieszało ze znacznikami
[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
16.01.2004, 22:21:58
no wlasnie nie dziala bo nie wyswietla nic i nie wiem czemu przez dodanie znacznika <br> wszystko sie sypie
Foxx
16.01.2004, 22:23:33
Hmm... miałeś wypróbować mój kod (zmieniłem trochę) a jeżeli nie zadziała miałeś wkleić swój.
miszqa
16.01.2004, 22:26:13
moj jest wyzej a ja wstawialem echo "<br>" pomiedzy print...
ale tez nie dzialalo i nie wiem co jest
Foxx
16.01.2004, 22:28:29
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
16.01.2004, 22:31:47
[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
16.01.2004, 22:34:38
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
16.01.2004, 22:39:11
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

?
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
16.01.2004, 22:43:53
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
16.01.2004, 22:52:33
[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
16.01.2004, 23:07:54
[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
17.01.2004, 01:41:15
Może nie jest to do końca to, o co chodzi w głównym wątku, ale zapraszam:
Pogodzia
miszqa
17.01.2004, 13:41:12
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
17.01.2004, 14:11:33
Po pierwsze to jest Twój skrypt
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
18.01.2004, 03:03:34
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
18.01.2004, 05:48:52
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...
Tak, by nie być gołosłownym:
http://forum.php.pl/viewtopic.php?t=147
http://forum.php.pl/viewtopic.php?p=364

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...
Foxx
18.01.2004, 11:04:46
@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

/
miszqa
18.01.2004, 14:13:19
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
18.01.2004, 15:06:40
Cytat

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...

Nie. Bo byly zgodne z regulaminem i nie obrazaly nikogo
Foxx
18.01.2004, 15:13:20
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
18.01.2004, 17:41:18
no mysle ze na tym zakonczymy dreczenie uzytkownikow bo otrzymalem to czego chcialem
wielkie dzieki
szoszon3
29.01.2004, 15:29:48
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
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¶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
25.03.2005, 19:17:18
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
25.03.2005, 19:51:12
Człowieku skąd ty odkopałeś tego posta

Już ponad rok minął kiedy to było napisane

Moderator! Zamknąć topic
radac78
26.03.2005, 14:05:06
Wiec twoim zdaniem lepiej rozpoczac nowy topic ... i znow narzekania ze temat juz byl
tiraeth
26.03.2005, 14:27:31
radac78: moim zdaniem temat jest tak nieaktualny (ten temat), że nikt na niego nie odpowie.. lepiej poszukać na forum 'nowszego' skryptu pogody...
mike
27.03.2005, 23:30:57
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
-SaraniS-
4.04.2005, 03:34:03
Cytat(mike_mech @ 2005-03-27 22:30:57)
A co maja zrobic ci ktorzy nie moga uzywac PHP5?

Sam jestem w takiej sytuacji, i niestety jedyne rozwiazanie to wykorzystac starsze skrypty
Poza tym mojej malej miejscowosci nie ma w kanalach Weather (moze byc Under, moze byc z Yahoo, wszystko jedno

), ani nawet na WP - jest w Interii

Pozostaje mi wiec niestety przerobic podanego tu parsera tak aby pobieral i wyswietlal to co chce, wlasnie z Interii
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.