Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Url extract data
-medyq-
post
Post #1





Goście







Witam, rozbudowuje skrypt na wzór facebook'owego stąd:

http://www.99points.info/2010/07/facebook-...query-ajax-php/

Wszystko pięknie mi idzie w stosunku do oryginału jednak natknąłem się przypadkiem na problem kodowania znaków.

Wszystkie pliki mam w kodowaniu utf-8 wraz z kodowaniem strony utf-8. Gdy Wyciągam tytuł i tagi stronki zakodowanej w utf-8 nie ma problemów. Natomiast gdy strona jest w iso wtedy zamiast PL znaków są krzaki. Przykładem może być dowolny artykuł na wp.pl. Link strony w kodowaniu iso wklejony tu: http://wakeupzee.netai.net/99points/facebook_url_extracting/ pokaże w czym problem.

Będę wdzięczny za pomoc.
Pozdrawiam.
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




mb_detect_encoding + iconv
Go to the top of the page
+Quote Post
medyq
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.03.2011

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


Zrobiłem to na takiej zasadzie:

  1. function convToUtf8($str){
  2. $encode = mb_detect_encoding($str, "ISO-8859-2, ISO-8859-1, UTF-8");
  3. if($encode !="UTF-8" )
  4. {
  5. return iconv("$encode","utf-8",$str);
  6. }
  7. else
  8. {
  9. return $str;
  10. }
  11. }
  12. $title = convToUtf8($title);


I wszystko gra jeśli strona jest w iso. Jeśli natomiast jest utf to dostaje dla odmiany też krzaczki :/
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No tak, a te krzaki w jakim kodowaniu?
Go to the top of the page
+Quote Post
medyq
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.03.2011

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


Dzięki za zainteresowanie. Problem polegał w koelejności wypisywanych po przecinku wariacji. Umieszczenie utf-8 na końcu ciągu w funkcji detect sprawiało że string w kodowaniu mimo kodowania utf-8 zostawał przepuszczony że przez iconv

Mimo innego przeznaczenia spróbowałem jak w poście: http://pl.php.net/manual/pl/function.mb-de...oding.php#81936

Odwróciłem kolejność:

  1. $encode = mb_detect_encoding($str, "UTF-8, ISO-8859-2, ISO-8859-1");


I śmiga.

Dziękuje za naprowadzenie. Wcześniej próbowałem z iconv ale od du.. strony (IMG:style_emoticons/default/smile.gif)

Ten post edytował medyq 11.03.2011, 23:14:00
Go to the top of the page
+Quote Post

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: 23.08.2025 - 02:14