Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Konwersja nieznanego kodowania na UTF-8
Domon
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.11.2008

Ostrzeżenie: (0%)
-----


Witam, piszę skrypt który z podanej przez użytkownika strony wyciąga tytuł, opis oraz tagi OpenGraphProtocol. Skrypt wygląda tak, że przez CURL pobierane jest źródło strony a następnie przez preg_match() pobierane są interesujące mnie dane. Wszystko ładnie gdyby nie to, że strony są w różnych kodowaniach i skrypt rzuca krzaczkami. Próbowałem napisać funkcję, która zwróci mi "naprawiony" string z polskimi literami używając głównie mb_detect_encoding() i iconv(), jednak żadne rozwiązanie nie było na tyle dobre aby rozwiązać problem do końca. Jeśli coś działało mi np przy ISO-8859-2 nie działalo np przy UTF-8 itd.

Szukałem rozwiązania i na forum.php.pl i na innych ale nie znalazłem nic co rozwiązałoby problem, a mi samemu skończyły się już pomysły.
Miał ktoś kiedyś podobny problem? Jakiś pomysł na wykonanie tego?

Liczę na Waszą pomoc (IMG:style_emoticons/default/wink.gif) .
Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Domon
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.11.2008

Ostrzeżenie: (0%)
-----


Tylko, że kodowanie strony może zupełnie nie być podane w meta tagach ani nagłówku...
Męcząc się z problemem dalej napisałem coś takiego:
  1. function utf8fix($str)
  2. {
  3. $ary = array('ASCII', 'UTF-8', 'ISO-8859-2', 'ISO-8859-1');
  4. $detect = mb_detect_encoding($str, $ary);
  5.  
  6. $iconv = iconv($detect, 'UTF-8', $str);
  7. return $iconv;
  8. }

Wygląda na to, że działa z wyjątkiem niektórych stron kodowanych w UTF-8. Otóż np wklejając link do filmu z YT w tytule mam polskie znaki ale w opisie już nie. Gdy na zmienną $iconv dam utf8_decode() polskie znaki są w opisie a nie ma w tytule. Istnieje jakiś sposób, żeby (najprawdopodobniej przez preg_match) sprawdzić czy tekst ma jakiekolwiek krzaki?

Ten post edytował Domon 19.04.2012, 14:03:03
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 05:06