![]() |
![]() |
-Mesajah- |
![]()
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ć:
na:
Jak najprościej osiągnąć taki efekt ? |
|
|
![]() |
![]()
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/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 15:18 |