Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Usiwanie polskich znaków ze stringa
kask18
post 23.07.2009, 08:04:34
Post #1





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 3.12.2008

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Spawnm
post 23.07.2009, 08:12:30
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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. ?>
Go to the top of the page
+Quote Post
golaod
post 23.07.2009, 08:12:41
Post #3





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


str_replace( tablica_polskich_znakow_diakrytycznych, tablica_zwyklych_znakow, string );
Go to the top of the page
+Quote Post
kask18
post 23.07.2009, 08:20:43
Post #4





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 3.12.2008

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


Wielkie dzięki za szybką odpowiedź
Go to the top of the page
+Quote Post
Crozin
post 23.07.2009, 08:42:18
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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).
Go to the top of the page
+Quote Post

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: 14.08.2025 - 05:25