![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 10.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
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); No ale nie mogę, bo mb_detect_encoding() zwraca nie to co trzeba. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 0 Dołączył: 7.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mi też nie chciało działać: mb_detect_encoding.
Zapisz w zmiennej np. $ciag ciąg który chcesz znaleźć i potem zależnie od tego jakie kodowanie jest zdefiniowane w: Kod $zawartosc = file_get_contents("http://www.onet.pl"); prze konwertuj tą zmienną na takie kodowanie jakie znalazłeś w $zawartosc i dopiero po konwersji szukaj w $zawartosc tego ciągu ![]() Na około ale działa ![]() -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 10.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
To nie zadziała gdyż
Kod mb_detect_encoding($zawartosc, 'UTF-8, ISO-8859-1, ISO-8859-2', true); zwraca mi złą wartość! Tym samym nie mogę rozpoznać czy chodzi o iso-8859-1 czy -2 Badam Onet.pl, oni mają 8859-2, a mb_detect_encoding zwarca mi 8859-1 i po prostu nie mam jak sprawdzić jakie jest to nieszczęsne kodowanie. Wie ktoś co tu jest źle, albo jak sprawdzać w jakiś inny sposób? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 0 Dołączył: 7.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Sposoby sprawdzania:
1. Nagłówki HTTP - Content-Type, onet nie zwraca kodowania odpada. 2.
coś w ten deseń. już pisałem o tym wczesniej. potem konwertujesz to co chesz znaleźć na taki kodowanie jakei znalazłeś ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:25 |