Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usiwanie polskich znaków ze stringa
Forum PHP.pl > Forum > Przedszkole
kask18
Witam wszystkich, chciałem usunąć ze stringa polskie znaki w taki sposób że ę zamieniam na e, ż na z i tak dalej. Myślałem żeby zczytywać każdy znak po kolei i za pomocą switcha sprawdzać czy to nie jeden ze znaków "specjalnych" i w case obsługiwać, ale polskie znaki są jakoś dziwnie obsługiwanie i źle to działa. Napisałem coś takiego:

  1. <?php
  2. function usuwanie_polskich_znakow($str)
  3.    {
  4.        $str = str_replace('ą', $str, 'a');    
  5.        $str = str_replace('ć', $str, 'c');    
  6.        $str = str_replace('ę', $str, 'e');    
  7.        $str = str_replace('ł', $str, 'l');    
  8.        $str = str_replace('ń', $str, 'n');    
  9.        $str = str_replace('ó', $str, 'o');    
  10.        $str = str_replace('ś', $str, 's');    
  11.        $str = str_replace('ź', $str, 'z');    
  12.        $str = str_replace('ż', $str, 'z');    
  13.        
  14.        return $str;
  15.    }
  16. ?>


Ale to nie jest optymalnie, prosił bym o jakieś rady. Zależy mi na wydajności mechanizmu usuwania tych znaków. Z góry dzięki za pomoc
Spawnm
do str_replace możesz dać tablice
  1. <?php
  2. function upz($dane){
  3. $pol=array('ą','ę');
  4. $nie=array('a','e');
  5. $z=str_replace($pol,$nie,$dane);
  6. return $z;
  7. }
  8. ?>
golaod
str_replace( tablica_polskich_znakow_diakrytycznych, tablica_zwyklych_znakow, string );
kask18
Wielkie dzięki za szybką odpowiedź
Crozin
Nieco "ładniejsze" i bardziej elastyczne (bo nie działa wyłącznie dla polskich znaków) to skorzystanie z iconv" title="Zobacz w manualu PHP" target="_manual (patrz na wzmiankę o //TRANSLIT).
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.