Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiana polskich znaków na znaki bez ogonków
Forum PHP.pl > Forum > PHP
PaJRaF
Witajcie

Mam skrypt w którym jest coś takiego:

  1. function removeSpecialCharacter($string){
  2. $array = array("\"","/",",","`",".","{}","[]","`","'","&","<>","=","^","$","@","!","?","~","#",":","+","++","%","-","_",";","()");
  3. $first_replace = trim(str_replace($array,"-",(trim($string))));
  4. $special_char= array("----","---","--","-");
  5. return (str_replace($special_char,"",$first_replace));
  6.  
  7. }


moje pytanie jest czy można dorobić do tego funkcję która przetwarzała by polskie znaki z ogonkami na te same znaki bez ogonków...
czyli np. ą > a; ś >s itd...

Z góry dziękuję za odpowiedź
c3zi
Możesz stworzyć 2 tablice (chyba najprostsze rozwiązanie):

  1. $aArr1 = array('ą', 'ę', 'ć');
  2. $aArr2 = array('a', 'e', 'c');
  3. str_replace($aArr1, $aArr2, $string);
  4.  
modern-web
Przy dużych stringach str_replace strasznie spowalnia całą aplikację, nie polecam tego rozwiązania.
Może pokombinuj coś z iconv?
PaJRaF
hmm :/

coś sobie nie mogę poradzić sad.gif

czy była by może osoba która zrobiła by coś takiego? (może być odpłatnie)

proszę o kontakt prześlę więcej szczegółów...
modern-web
Zapraszam do wątku: `Giełda ofert`
maniana
Proponuje skrypt który działa nie tylko na polskich znakach (działa na UTF):
  1. function str2Url($t,$replace=null) {
  2. $rf = array("\r","\n","\r\n","\n\r",'а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я');
  3. $rt = array('','','','','a','b','v','g','d','e','jo','zh','z','i','j','k','l','m','n','o','p','r','s','t','u','f','h','c','ch','sh','w','','y','','je','ju','ja');
  4. $txt = str_replace(array('^',"'",'"','`','~'),'',iconv('UTF-8','ASCII//TRANSLIT',str_replace($rf,$rt,mb_strtolower($t,'UTF-8'))));
  5. if(empty($replace)) return $txt;
  6. else return str_replace(' ',$replace, ereg_replace(' +',' ',preg_replace('/[^a-zA-Z0-9\s]/','',trim(str_replace(array('_','.',',','(',')','{','}','[',']','/',':',';','"','\'','-','+','=','!','@','#','$','%','^','&','?','*'),' ', $txt )))));
  7. }
Używamy w następujący sposób:
  1. str2Url('Litwo! Ojczyzno moja! Ty jesteś jak zdrowie. Nazywał się rówiennicą a pan Rejent był tytuł markiza.','-'); // Przekształca tekst na url
  1. str2Url('Litwo! Ojczyzno moja! Ty jesteś jak zdrowie. Nazywał się rówiennicą a pan Rejent był tytuł markiza.'); // Tylko usuwa znaki narodowe

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.