Przypuśćmy, że na naszej stronce (np. stronie miasta) chcemy mieć aktualną pogodę. Napiszemy sobie w takim razie prosty skrypt, który pobierać będzie aktualne wyniki.
Przejdźmy zatem do kodu...
Rozpoczynamy sesję cURL'a i konfigurujemy ją na nasze potrzeby oraz za pomocą parametru CURLOPT_RETURNTRANSFER ustawionego na 1 dane przesyłane od serwera wyświetlam za pomocą ciągu znaków:
<?php
 function pogoda($miasto) {
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, "http://pogodnie.pl/show/city/".$miasto);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 }
 ?>Dodatkowo, aby nie zabić naszej stronki przez jeden prosty skrypt, ustawimy timeout dla połączenia curla na 15 sekund. Na koniec wywołujemy curla, wynik sesji zapisujemy w jakiejś zmiennej (w moim przypadku ta zmienna nazywa się $wynik) i zamykamy połączenie.[/font]
 
 <?php
 function pogoda($miasto) {
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, "http://pogodnie.pl/show/city/".$miasto);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($curl, CURLOPT_TIMEOUT, 15);
 $wynik = curl_exec($curl);
 curl_close($curl);
 }
 ?>[font="Arial"]Kolejnym zadaniem będzie analiza kodu strony pogodnie.pl (tak jak na poczatku napisałem kod
tej storny jest przejrzysty i łatwo odszukamy to czego potrzebujemy czyli aktualną pogodę.
<div class="livebox_box"> <div class="livebox_top"><div></div></div> <div class="livebox_content"> <h1>Grójec</h1> (Polska)<br/> <h2>TERAZ</h2> <img src="/images/slonce.png" width='100' height='125' border='0'><br /> <span class="lighter">Pochmurnie</s9°C</span><br /> Wiatr: <span class="stronger">23 km/h</span> </div> <div class="livebox_bottom"><div></div></div> </div>Teraz musimy wygrzebać z tego kodu to co nam naprawdę potrzebne:
<?php
 (?)
 $wynik = explode('<div class="livebox_top"><div></div></div>',$wynik);
 $wynik = $wynik[1];
 $wynik = explode('<div class="livebox_bottom"><div></div></div>', $wynik);
 $wynik = $wynik[0];
 (?)
 ?>Funkcja explode zwraca nasz łańcuch w postaci tablicy. Rozbijamy łańcuch w miejscu, gdzie znajduje się
<div class="livebox_top"><div></div></div>Teraz do zmiennej $wynik przypisujemy kolejny element tablicy $wynik
i tak jak poprzednio na otrzymanym łańcuchu wywołujemy explode.
Tym razem do zmiennej $wynik zapisujemy łańcuch przed rozbiciem:
<div class="livebox_content"> <h1>Grójec</h1> (Polska)<br/> <h2>TERAZ</h2> <img src="/images/slonce.png" width='100' height='125' border='0'><br /> <span class="lighter">Pochmurnie</span><br /> Temperatura: <span class="stronger">9°C</span><br /> Wiatr: <span class="stronger">23 km/h</span></div>Następnie zmieniamy klasę boxa, w którym znajduje się pogoda i usuwamy zbędne fragmenty kodu. Wcześniej jednak usuwamy nazwę kraju (ponieważ nasza pogoda jest regionalna) i informacje o rozmiarach obrazka i zamkniemy tag. W końcu chcemy otrzymać poprawny kod xHTML 1.0 Strict.
![;]](/public/style_emoticons/default/haha.gif) (rzadko się to zdarza w dzisiejszych czasach).
 (rzadko się to zdarza w dzisiejszych czasach).<?php
 function pogoda($miasto) {
 //inicjacja curla
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, "http://pogodnie.pl/show/city/".$miasto);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($curl, CURLOPT_TIMEOUT, 25);
 $wynik = curl_exec($curl);
 curl_close($curl);
 //Wyciąganie ze źródła potrzebnego kodu za pomocą fukcji explode();
 $wynik = explode('<div class="livebox_top"><div></div></div>',$wynik);
 $wynik = $wynik[1];
 $wynik = explode('<div class="livebox_bottom"><div></div></div>', $wynik);
 $wynik = $wynik[0];
 //Rozpoczynanie formatowania
 $wynik = preg_replace('/<\/h1>(.*?)<h2>/si', '</h1><h2>', $wynik);
 $wynik = preg_replace("/width='(.*?)' height='(.*?)' border='(.*?)'/si", 'alt="" /', $wynik);
 $pattern[0] = 'livebox_content';
 $pattern[1] = '<h2>TERAZ</h2>';
 $replacement[0] = 'weather_box';
 $replacement[1] = '';
 $wynik = str_replace($pattern, $replacement, $wynik);
 //Zwracanie fragmentu po formatowaniu
 return($wynik);
 }
 echo pogoda('id');
 ?>    A w (x)html 1.0 Strick, który przechodzi spokojnie przez walidator to będzie:<div class="weather_box"> <h1>Grójec</h1> <img src="/images/slonce.png" alt="" /><br /> <span class="lighter">Pochmurnie</span><br /> Temperatura: <span class="stronger">9°C</span><br /> Wiatr: <span class="stronger">23 km/h</span> </div>
Teraz musimy przygotować jeszcze potrzebne nam grafiki o nazwach:
-chmury.png
-deszcz-ze-sniegiem.png
-deszcz.png
-mzawka.png
-slonce-z-chmura.png
-slonce.png
-snieg.png
Uwaga! Nie zmieniajcie nazw tych plików, ponieważ z takich korzysta serwis pogodnie.pl
 
 Teraz musimy jeszcze na stronie (tam gdzie chcemy mieć naszą pogodę) dodać:
<?php echo pogoda('id'); ?>Linijkę wyżej musieliśmy, a teraz możemy.. cieszyć się z wykonanej przez nas roboty (oczywiście może się nie podobać ![;]](/public/style_emoticons/default/sad.png) )
 )Jestem równiez pewien, że serwis pogodne byłby zadowolony gdybyśmy dodali gdzieś:
<a href="http://pogodnie.pl" title="Pogodnie.pl">Pogodnie.pl</a>Lub chociaż
<!-- <a href="http://pogodnie.pl" title="Pogodnie.pl">Pogodnie.pl</a> -->
Pamiętajcie... Waszym ograniczeniem jest tylko i wyłącznie wasza wyobraźnia
 



 
	![[html/xhtml][PHP][cURL] Aktualna pogoda za pomocą cURL: post #1](https://www.forum.tweaks.pl/public/style_images/master/icon_share.png) 
					 
      
      




 
                    