Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Funkcja usuwająca znaki niealfanumeryczne
-Mesajah-
post
Post #1





Goście







Witam,

Czy jest jakaś funkcja, która pozwala usuwać wszystkie znaki niealfanumeryczne ze stringa (w celu stworzenia przyjaznego linka) ?

Np chciałbym zamienić:
  1. $a='Adam Mickiewicz - Dziady (1820)!'^&*_';

na:
  1. $b='adam-mickiewicz-dziady-1820';


Jak najprościej osiągnąć taki efekt ?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Mesajah... Jak widzę nie przyjrzałeś się JAK działa ten kod. Podaje tablicę znaków innych niż a-z, a więc diakrytyki narodowe jako klucze tablicy, a wartości tablicy to znaki na jakie podczas konwersji się zamienia je w str_replace. Stąd nie mam dwóch tablic, a tylko jedną. W str_replace jako argumenty podaję raz array_keys, a raz array_values. Potem usuwam wszystkie inne jakie jeszcze zostały i na koniec wielokrotne wystąpienie separatora czy spacji zastępujemy pojedynczym separatorem. A dla pewności trimujemy string z możliwych separatorów na obu końcach stringa. Co do preg_replace i problemów z niektórymi znakami to może ich nie zaescape'owałeś? * czy . to znaki specjalne wyrażeń regularnych i muszą być poprzedzone znakiem ucieczki by traktował je dosłownie. Ja to "olewam" i usuwam je jako niealfanumeryczne w 8 linii wyrażeniem. A poza tym to chyba masz coś nie tak z parserem, bo podane przez Ciebie na końcu wyrażenie usuwa ze stringa * ( ) _ i inne znaki niealfanumeryczne. Weź zassij choćby regexp editor stąd i sam sprawdź (IMG:style_emoticons/default/smile.gif)
http://www.waterproof.fr/products/RegExpEditor/
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 Aktualny czas: 12.10.2025 - 15:18