Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP/MYSQL/Curl Kodowanie
Forum PHP.pl > Forum > PHP
Reptile ReX
Mój skrypt pobiera informacje z wpisanego w inpucie adresu.

Za pomocą curla i wyrażeń regularnych a także, get_meta_tags.

I teraz mam problem, mój serwis jest w kodowaniu UTF-8, baza danych wszędzie: utf8_unicode_ci

Przy wyciąganiu np danych z onet.pl albo interia.pl pojawiają się sławne krzaczki, albo w ogóle obcina ciąg i nie dodaje do bazy całości.

Jako że mój serwis ma być elastyczny nie mogę sobie zrobić po prostu:

  1. $a = iconv('iso-8859-2', 'UTF8', $zmienna);


Bo wtedy strony które są w kodowaniu UTF-8 się sypią.

Próbowałem zdziałać coś funkcją mb_detect_encoding, jeżeli chodzi o UTF-8 to odczytuje kodowanie poprawnie, ale np iso-8859-2 już nie odczytuje więc problem występuje nadal.

Macie jakieś propozycje? może ja coś źle kminię smile.gif
vermis
Możesz pobrać tę informację z metatagów na stronie i z nagłówków wysyłanych przez serwer.
Tak zapytam jeszcze, czy masz zgodę "onet.pl albo interia.pl" na pobieranie od nich danych?
Reptile ReX
Nie zawsze w nagłówkach jest określone z kodowanie.

Ma ktoś jakiś inny pomysł? czy zostaje mi tylko preg_match ?

Co do zgody to jedyne dane jakie są pobierane to: Title, Keywords oraz description.
Więc raczej nie naruszam żadnych praw autorskich.
Noidea
Przeglądarka też nie potrafi magicznie rozpoznać kodowania strony. Najpierw sprawdza, czy podane jest kodowanie w nagłówku Content-Type (tak jak na onecie). Jeżeli nie jest podane, to sprawdza tag <meta> (tak jak na interii). Jeżeli tam też nie ma podanego kodowania, to przeglądarka ustawia domyślne.

Sprawdzaj tak samo u siebie.
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.