Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] str_replace i polskie znaki
statek
post 13.07.2009, 14:49:08
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 2.06.2009

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


Nie wiem czemu ale funkcja str_replace nie działa mi dobrze z polskimi znakami. Mam łańcuch znaków wpisany w kodzie php (edytor ma kodowanie utf-8), następnie zamieniam w tym łańcuchu znaki diakrytyczne na ich odpowiedniki w ascii: 'ą' na 'a', 'ć' na 'c' i tak dalej. I na stronie dostaje same znaki zapytania w miejsce polskich liter. Kodowanie strony jest utf-8 i teksty wpisane w htmlu są poprawnie wyświetlane. Co zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
athei
post 13.07.2009, 19:07:35
Post #2





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


strtr nie działa dla UTF8 (dokument zapisany w utf8, oraz charset utf-8), dla iso-8859-2 owszem.
Sprawdź $tekst = "Zażółć gęślą jaźń";

Działa natomiast str_replace.
  1. <?php
  2. function clearDiacritics($sText)
  3. {
  4.  $aReplacePL = array('ą' => 'a', 'ę' => 'e', 'ś' => 's', 'ć' => 'c', 'ó' => 'o', 'ń' => 'n', 'ż' => 'z', 'ź' => 'z', 'ł' => 'l', 'Ą' => 'A', 'Ę' => 'E', 'Ś' => 'S', 'Ć' => 'C', 'Ó' => 'O', 'Ń' => 'N', 'Ż' => 'Z', 'Ź' => 'Z', 'Ł' => 'L');
  5.  return str_replace(array_keys($aReplacePL), array_values($aReplacePL), $sText);
  6. }
  7. echo clearDiacritics($tekst);
  8. ?>


Ten post edytował athei 13.07.2009, 19:32:52
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 9.06.2024 - 12:12