W php to moje początki, więc proszę o wyrozumiałość.
Piszę skrypt, który pobierze zawartość strony i przeszuka pobrany kod w poszukiwaniu zadanego wzorca.
Niby proste, ale ja mam wzorzec zapisywany u utf-8, a strony mają różne kodowanie: utf-8, iso-8859-2, iso-8859-1, windows-1250 itd.
Idea jest taka:
1. Pobrać kod strony używając "file_get_contents()";
2. Sprawdzić kodowanie strony i ewentualnie zamienić na utf-8;
3. Wyszukać wzorzec.
Problem stanowi punkt 2!
Przykład - odczytanie kodowania strony Onet.pl - kodowanie iso-8895-2
Więc napisałem:
Kod
$zawartosc = file_get_contents("http://www.onet.pl");
$siteCoding = mb_detect_encoding($zawartosc, 'UTF-8, ISO-8859-1, ISO-8859-2', true);
echo $siteCoding;
No i zwraca iso-8859-1 zamiast iso-8859-2.
Gdzie robię błąd? Bo potem chciałem zrobić:
Kod
if($siteCoding != 'UTF-8')
$zawartosc = mb_convert_encoding($zawartosc, "UTF-8", $siteCoding);
$zawartosc = mb_convert_encoding($zawartosc, "UTF-8", $siteCoding);
No ale nie mogę, bo mb_detect_encoding() zwraca nie to co trzeba.