| -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/ |
|
|
|
Mesajah [PHP]Funkcja usuwająca znaki niealfanumeryczne 2.03.2011, 02:11:17
darko Spróbuj [PHP] pobierz, plaintext preg_replace... 2.03.2011, 02:21:01
mesajah Dzięki, część już jest ok, ale znalazłem jeszcze c... 2.03.2011, 02:56:56
d3ut3r Skoro tworzysz klasę hUrls to wypadałoby stworzyć ... 2.03.2011, 04:36:26
darko ~d3ut3r to nie jest metoda statyczna, więc należy ... 2.03.2011, 10:52:30
thek To ja podam Ci złożony gotowiec złożony z nieco pr... 2.03.2011, 11:44:02
Mesajah Skrypt Theka będzie chyba dobry do utf8- (tego mi ... 3.03.2011, 01:34:10
Mesajah No rzeczywiście chyba się za dobrze nie przyjrzałe... 3.03.2011, 09:37:24 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 15:40 |