Stworzenie panelu ze skryptu php.
|
janisz |
Dodany dnia 10.07.2008 10:17:12
|
Przedszkolak
Postów: 84 Ostrzeżeń: 3
Data rejestracji: 01.07.2005 13:48
|
Witam,
Jestem początkującym użytkownikem i mam pytanie, czy poniższy kod dałoby się przerobić, aby pogoda wyświetlała się w panelu a nie w postaci strony informacyjnej ?
<?php
/**************************************************
* Pogoda z WP.pl *
**************************************************
* Wersja: 3.01 *
* Autor: Jacek Kowalski (http://jacekk.info) *
* *
* Utwór rozprowadzany na licencji *
* http://creativecommons.org/licenses/by-nc/2.5/ *
**************************************************/
// Zmień 1201286 na kod swojego miasta
$url = 'http://pogoda.wp.pl/mi.html?mid=1201286';
// Pobieranie danych
$link = curl_init($url);
curl_setopt($link, CURLOPT_REFERER, 'http://pogoda.wp.pl');
curl_setopt($link, CURLOPT_RETURNTRANSFER, TRUE);
$wynik = curl_exec($link);
curl_close($link);
// Wycięcie kawałka, potrzebne zamiany
$start = strpos($wynik, '<div class="hdMain"', $wynik);
$stop = strpos($wynik, '<br class="b5"/>', $wynik);
$wynik = substr($wynik, $start, $stop-$start);
$wynik = str_replace('<strong style="padding-left: 2px;">', '<strong>', $wynik);
// Wyci±ganie danych
$dzien = trim(strip_tags(substr($wynik, 0, strpos($wynik, '</div>'))));
$szukaj = array(
'<strong>' => array(
'</strong>',
'miasto',
'temp_max',
'temp_min',
'wiatr_szybkosc',
'wiatr_chlodzenie',
'wschod',
'zachod',
),
'<div class="chmurka">' => array(
'</div>',
'obrazek',
),
'<div class="opis">' => array(
'</div>',
'opis',
),
'.gif" alt="' => array(
'"',
'spacja',
'wiatr_kierunek',
),
);
$dane = array();
foreach($szukaj as $patt => $info) {
$stop = 0;
$len = strlen($patt);
for($i=0; $i < count($info)-1; $i++) {
$start = strpos($wynik, $patt, $stop)+$len;
$stop = strpos($wynik, $info[0], $start);
$dane[ $info[$i+1] ] = trim(substr($wynik, $start, $stop-$start));
}
}
if($dane['temp_min'] == $dane['temp_max']) {
$dane['temp'] = $dane['temp_min'];
}
else
{
$dane['temp'] = 'od '.$dane['temp_min'].' do '.$dane['temp_max'];
}
// Pokazanie w nowej formie
echo '<html>
<head>
<base href="http://pogoda.wp.pl">
<style type="text/css">
body {
font-family: Verdana, sans-serif;
font-size: 10px;
}
h1 {
font-size: 14px;
font-weight: bold;
}
.sub {
font-size: 13px;
}
</style>
</head>
<body>
<h1>'.$dzien.'. Pogoda dla miejscowo¶ci '.strip_tags($dane['miasto']).'</h1>
<p>'.$dane['obrazek'].'</p>
<p><b>Temperatura:</b> '.$dane['temp'].'</p>
<p><b>Kierunek wiatru:</b> '.$dane['wiatr_kierunek'].'<br/>
<b>Szybko¶ć wiatru:</b> '.$dane['wiatr_szybkosc'].'<br/>
<b>Czynnik chłodz±cy:</b> '.$dane['wiatr_chlodzenie'].'</p>
<p><b>Wschód słońca:</b> '.$dane['wschod'].'<br/>
<b>Zachód słońca:</b> '.$dane['zachod'].'</p>
<hr/>
© by <a href="http://jacekk.info">Jacek Kowalski</a>
</body>
</html>';
?>
Z góry dziękuje za wszelką pomoc i sugestie/.
PW od moderatora:
- Zmiana nazwy tematu - bartek124 10.07 - 10:19
- Przeniesienie tematu - bartek124 10.07 - 10:19
|
|
|
|
Wścibski Gość |
Dodany dnia 22.12.2024 11:52:27
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
jantom |
Dodany dnia 10.07.2008 10:40:55
|
Weteran
Postów: 3460 Pomógł: 123
Data rejestracji: 31.03.2005 20:10
|
/**************************************************
* Pogoda z WP.pl *
**************************************************
* Wersja: 3.01 *
* Autor: Jacek Kowalski (http://jacekk.info) *
* *
* Utwór rozprowadzany na licencji *
* http://creativeco...by-nc/2.5/ *
**************************************************/
// Zmień 1201286 na kod swojego miasta
$url = 'http://pogoda.wp.pl/mi.html?mid=1201286';
// Pobieranie danych
$link = curl_init($url);
curl_setopt($link, CURLOPT_REFERER, 'http://pogoda.wp.pl');
curl_setopt($link, CURLOPT_RETURNTRANSFER, TRUE);
$wynik = curl_exec($link);
curl_close($link);
// Wycięcie kawałka, potrzebne zamiany
$start = strpos($wynik, '<div class="hdMain"', $wynik);
$stop = strpos($wynik, '<br class="b5"/>', $wynik);
$wynik = substr($wynik, $start, $stop-$start);
$wynik = str_replace('<strong style="padding-left: 2px;">', '<strong>', $wynik);
// Wyci±ganie danych
$dzien = trim(strip_tags(substr($wynik, 0, strpos($wynik, '</div>'))));
$szukaj = array(
'<strong>' => array(
'</strong>',
'miasto',
'temp_max',
'temp_min',
'wiatr_szybkosc',
'wiatr_chlodzenie',
'wschod',
'zachod',
),
'<div class="chmurka">' => array(
'</div>',
'obrazek',
),
'<div class="opis">' => array(
'</div>',
'opis',
),
'.gif" alt="' => array(
'"',
'spacja',
'wiatr_kierunek',
),
);
$dane = array();
foreach($szukaj as $patt => $info) {
$stop = 0;
$len = strlen($patt);
for($i=0; $i < count($info)-1; $i++) {
$start = strpos($wynik, $patt, $stop)+$len;
$stop = strpos($wynik, $info[0], $start);
$dane[ $info[$i+1] ] = trim(substr($wynik, $start, $stop-$start));
}
}
if($dane['temp_min'] == $dane['temp_max']) {
$dane['temp'] = $dane['temp_min'];
}
else
{
$dane['temp'] = 'od '.$dane['temp_min'].' do '.$dane['temp_max'];
}
// Pokazanie w nowej formie
echo'<h1>'.$dzien.'. Pogoda dla miejscowo¶ci '.strip_tags($dane['miasto']).'</h1>
<p>'.$dane['obrazek'].'</p>
<p><b>Temperatura:</b> '.$dane['temp'].'</p>
<p><b>Kierunek wiatru:</b> '.$dane['wiatr_kierunek'].'<br/>
<b>Szybko¶ć wiatru:</b> '.$dane['wiatr_szybkosc'].'<br/>
<b>Czynnik chłodz±cy:</b> '.$dane['wiatr_chlodzenie'].'</p>
<p><b>Wschód słońca:</b> '.$dane['wschod'].'<br/>
<b>Zachód słońca:</b> '.$dane['zachod'].'</p>
<hr/>
© by <a href="http://jacekk.info">Jacek Kowalski</a>';
Wstaw w nowy panel i popraw kodowanie znaków.
Edytowane przez jantom dnia 10.07.2008 10:42:11
|
|
|
|
janisz |
Dodany dnia 10.07.2008 10:47:41
|
Przedszkolak
Postów: 84 Ostrzeżeń: 3
Data rejestracji: 01.07.2005 13:48
|
Wielkie dzięki !!!
A jak się zmienia kodowanie przy okazji zapytam ? |
|
|
|
jantom |
Dodany dnia 10.07.2008 11:54:31
|
Weteran
Postów: 3460 Pomógł: 123
Data rejestracji: 31.03.2005 20:10
|
Chodziło mi o poprawienie wszystkich ¶ na ś etc... |
|
|
|
Ramage |
Dodany dnia 25.08.2008 22:32:56
|
Przedszkolak
Postów: 99 Pomógł: 1 Ostrzeżeń: 1
v7.02.07 Data rejestracji: 18.05.2008 22:09
|
U mnie nie działa ten panel
Wkleiłem ale nic z tego, wydaje mi się że to przez to że mam PF v.7 czy to dlatego? Czy coś innego ?
Edytowane przez ICEK dnia 25.08.2008 22:41:19
|
|
|
|
Pieka |
Dodany dnia 25.08.2008 23:07:25
|
Postów: 19885 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Nie kazdemu bedzie dzialal, poniewaz czesc hostingow ma zablokowana funkcje curl. Twoj z pewnoscia.
Jestem jaki jestem
|
|
|
|
Ramage |
Dodany dnia 26.08.2008 19:20:29
|
Przedszkolak
Postów: 99 Pomógł: 1 Ostrzeżeń: 1
v7.02.07 Data rejestracji: 18.05.2008 22:09
|
To jest jakaś alternatywa do tego skryptu ? Co będzie na moim hostingu działać ?
Tworzę stronę dla mojego miasteczka i chciałbym mieć taki bajer u siebie. Hosting ten sam co pasjagier.pl
Widziałem w labolatorium modułów cos podobnego ale to wyświetla na stronie informacyjnej, a mi chodzi aby w panelu było
|
|
|
|
Pieka |
Dodany dnia 26.08.2008 19:57:58
|
Postów: 19885 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Ramage napisał/a:
To jest jakaś alternatywa do tego skryptu ? Co będzie na moim hostingu działać ?..
Wszystko, co nie korzysta z zablokowanych u Ciebie funkcji, czyli np. ten panel:
opentable("Pogoda z WP");
$dir="http://w.wp.pl/p/pogoda/i/general/country/POL/forecast/"; {
for ($d=-1; $d<4; $d++)
{
$obrazek[$d]=date("Y.m.d", mktime (0,0,0,date("m") ,date("d")+$d,date("Y")));
}
$nazwy=Array("-1" => "wczoraj", "0" => "dzisiaj", "1" => "jutro", "2" => "pojutrze", "3" => "za trzy dni");
if ($dzien=="") {$dzien=$obrazek[0]; }
$text = 'Obrazki pochodzą z <a href="http://www.wp.pl" target="wp">Wirtualnej Polski</a>';
echo '<form action="'.$PHP_SELF.'" method="GET" name="dzform">';
echo '<input type="hidden" name="op" value="'.$op.'">';
echo '<center><b><font size="4">Pogoda na </b>';
echo '<select name="dzien" onChange="document.pogobrazek.src=\''.$dir.'\'+document.dzform.dzien.value+\'.png\'">';
for ($d=-1; $d<4; $d++)
{
echo '<option value="'.$obrazek[$d].'"';
if ($obrazek[$d]==$dzien) { echo ' SELECTED'; }
echo '>'.$obrazek[$d];
if ($nazwy[$d]) { echo ' '.$nazwy[$d]; }
}
echo '</select>';
echo '</form>';
echo '</font><br>';
echo '<br /> <img src="'.$dir.$dzien.'.png" name="pogobrazek"><br>';
echo '<br /> <font size="1">'.$text.'</font>';
}
closetable();
Jestem jaki jestem
|
|
|
|
Ramage |
Dodany dnia 26.08.2008 22:14:08
|
Przedszkolak
Postów: 99 Pomógł: 1 Ostrzeżeń: 1
v7.02.07 Data rejestracji: 18.05.2008 22:09
|
Dzięki wielkie, tylko próbuję na wszystkie sposoby aby zmniejszyć to do rozmiarów takich aby wstawić w boczny panel no i nie wychodzi.
|
|
|
|
Pieka |
Dodany dnia 26.08.2008 22:22:51
|
Postów: 19885 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Ramage napisał/a:
Dzięki wielkie, tylko próbuję na wszystkie sposoby aby zmniejszyć to do rozmiarów takich aby wstawić w boczny panel no i nie wychodzi.
Podam przyklad dla szerokosci 170px, wiec jesli bedzie za duze to sam zmienisz wielkosci.
Znajdz:
echo '<center><b><font size="4">Pogoda na </b>';
i zamien na:
echo '<center><b><font size="2">Pogoda na </b>[color=red]<br>[/color]';
Nastepnie znajdz:
echo '<br /> <img src="'.$dir.$dzien.'.png" name="pogobrazek"><br>';
i zamien na:
echo '<br /> <img src="'.$dir.$dzien.'.png" name="pogobrazek" [color=red]width="170" height="170"[/color]><br>';
Na czerwono zaznaczylem miejsca zmian.
Jestem jaki jestem
|
|
|
|
Ramage |
Dodany dnia 26.08.2008 22:53:31
|
Przedszkolak
Postów: 99 Pomógł: 1 Ostrzeżeń: 1
v7.02.07 Data rejestracji: 18.05.2008 22:09
|
Dzięki wielkie, działa ale raczej tego nie zastosuję bo ciężko rozczytać temperaturę, ale jeszcze raz dzięki wielkie.
|
|
|
|
Pieka |
Dodany dnia 26.08.2008 23:16:16
|
Postów: 19885 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Ramage napisał/a:
Dzięki wielkie, działa ale raczej tego nie zastosuję bo ciężko rozczytać temperaturę, ale jeszcze raz dzięki wielkie.
A malo to paneli na forum, ktore raz, ze ladne, dwa, ze male, a do tego czytelne?
Przyklad tylko jednego tematu o tym: http://www.php-fu...post_74082
Edytowane przez Pieka dnia 26.08.2008 23:16:43
Jestem jaki jestem
|
|
|