Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pogoda z IMGW a polskie znaki w UTF
Forum PHP.pl > Forum > PHP
a79rtur
czesc
uzywam na stronie kodowania utf. kiedy proboje wstawic tam skrypt z pogoda z tej strony polskie znaki nie sa poprawnie wyswietlane. co mozna na to zaradzic ?
nospor
uft? chyba utf smile.gif szczegol winksmiley.jpg

no popatrz, a oni uzywaja kodowania iso-8859-2
Co masz wiec zrobic? przekonwertowac... na forum az sie roi od takich skryptów do konwersji
a79rtur
poprawilem literowke smile.gif
ok, przekonwertowac to wiem ale jak skoro tam jest wstawiany kod ktory wywoluje skrypt js z ich strony
nospor
sądzilem ze ty pobierasz zrodlo ich strony i na tej podstawie to wyswietlasz. sorki, nie zaczailem.

teraz zresztą też nie czaję smile.gif to wkoncu ty to robisz po stronie php, czy js? sie zdecyduj, bo dzial w ktorym to dales wskazuje na php winksmiley.jpg
a79rtur
skopiowalem poprostu zrodlo z tej strony ktora dalem, poprawilem sciezki i wyswietla sie ladnie pogoda, tylko te znaki nie bardzo. dalem w php bo za bardzo nie wiem czy w php jakos to ma byc ominiete czy w js
Konio
Mam dokladnie taki sam problem. Do dzis nei znalazlem wyjscia na to.
Jak wy radzicie sobie z takimi sytuacjami?
Konwersja znakow nie jest problemem tylko jak w takim wypadku ja wykonac?

Szukalem dlugo ale byc moze zle hasla na to zadawalem. Czy znajde na to odp w archiwum (jakiego watku wtedy szukac? watki 'konwersja znakow' calkowicie inne problemy poruszaja choc z tej dziedziny).
Apo
miałem chwile to napisalem. Pisane 'z palca' więc może być troche błędów:

  1. <?php
  2. $dane = file_get_contents('http://www.imgw.pl/wl/cgi/prognumer?szer_st=51&szer_min=24&dlug_st=21&dlug_min=10&model=cosmo?=pl&form=tab');
  3. $chars = array(
  4. 'ś' => 'ś', // ś
  5. 'ą' => 'ą', // ą
  6. 'Ľ' => 'ź', // ź
  7. );
  8.  
  9. foreach($chars as $iso => $utf)
  10.   {
  11.   $dane = preg_replace('#'.$iso.'#', $utf, $dane);
  12.   }
  13. ?>

A jeśli chcesz więcej znaków konwertowac to dodaj je poprostu do tablicy.
ps kodowanie znaków utf musisz sprawdzieć w źródle bo sie zamieniły ;/
ps 2 POMOCY: http://forum.php.pl/index.php?showtopic=42187
splatch
Do konwertowania kodowania służy funkcja iconv
a79rtur
zamiana znakow w pobranym kodzie nic nie dala ponieważ ciagi sa generowane przez js, dlatego zrobilem to w ten sposob ze pobieram od nich ten js, zapisuje na dysku i zamianiam w nim znaki, a link do niego podmieniam na moj. oto kod, pobranie htmla i js'a curlem.
  1. <?php
  2.  
  3. //pobranie htmla
  4. $link="http://www.imgw.pl/wl/cgi/prognumer?szer_st=51&szer_min=24&dlug_st=21&dlug_min=10&model=cosmo&lang=pl&form=tab";
  5. $f = curl_init();
  6. curl_setopt($f, CURLOPT_URL, $link);
  7. curl_setopt($f, CURLOPT_RETURNTRANSFER, 1);
  8. $pogoda_html=curl_exec($f);
  9.  
  10. //pobranie skryptu js i konwersja
  11. $link="http://www.imgw.pl/wl/internet/zz/_glob/cosmo_pl_tab.js";
  12. curl_setopt($f, CURLOPT_URL, $link);
  13. curl_setopt($f, CURLOPT_RETURNTRANSFER, 1);
  14. $pogoda_js=curl_exec($f);
  15. $pogoda_js=iconv('ISO-8859-2','UTF-8',$pogoda_js);
  16.  
  17. //sciezka do katalogu jakiegos z prawami zapisu np tmp
  18. $plik=fopen($sciezka."cosmo_pl_tab.js",'w');
  19. fwrite($plik,$pogoda_js);
  20. curl_close($f);
  21.  
  22. //nalezy takze poprawic link do pliku z danymi poniewaz skrypt proboje go brac z l
    okalnego a teraz jest on u nas
  23. $pogoda_html=str_replace("var katzasob='/wl/internet/zz/_glob/prognumer';","var katzasob='http://www.imgw.pl/wl/internet/zz/_glob/prognumer';",$pogoda_html);
  24.  
  25. //podpinamy nasz poprawiony js
  26. $pogoda_html=str_replace('src="/wl/internet/zz/_glob/cosmo_pl_tab.js"','src="'.$naszURL.'cosmo_pl_tab.js"',$pogoda_html);
  27.  
  28. //wywalenie naglowka itp rzeczy, zostaje sam potrzebny skrypt
  29. $body_open_poz=strpos($pogoda_html,'<body>');
  30. $body_close_poz=strpos($pogoda_html,'</body>');
  31. $ile_wyciac=$body_close_poz-$body_open_poz;
  32. $pogoda_html=substr($pogoda_html,$body_open_poz+6,$ile_wyciac-7);
  33.  
  34. $pogoda_html=iconv('ISO-8859-2','UTF-8',$pogoda_html);
  35.  
  36. ?>

teraz w zmiennej $pogoda_html mamy skrypt generujacy pogode i mozemy go socie wstawic do jakiegos diva.
ps: w info na stronie IMGW pisze ze jesli sie chce ta pogode u siebie wykorzystac to trzeba ankiete wypelnic.
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.