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
-Mesajah-
post
Post #2





Goście







Skrypt Theka będzie chyba dobry do utf8- (tego mi brakuje), ale nie zamienia ogonków.
Tak w ogóle jak on działa ?
Na co zamienia znaki w utf skoro nie widzę tam drugiej tablicy (tej na które znaki są zamieniane).

Ja zmodyfikowałem inny skrypt na swoje potrzeby i wyszło coś takiego:

  1. function plCharset($string) {
  2.  
  3. $string = str_replace(".", "-", $string);
  4. $string = str_replace("[", "-", $string);
  5. $string = str_replace("]", "-", $string);
  6. $string = str_replace("(", "-", $string);
  7. $string = str_replace(")", "-", $string);
  8. $string = str_replace("<", "-", $string);
  9. $string = str_replace(">", "-", $string);
  10. $string = str_replace("*", "-", $string);
  11.  
  12. $string = strtolower($string);
  13. $polskie = array(',', ' - ',' ','ę', 'Ę', 'ó', 'Ó', 'Ą', 'ą', 'Ś', 's', 'ł', 'Ł', 'ż', 'Ż', 'Ź', 'ź', 'ć', 'Ć', 'ń', 'Ń','-',"'","/","?", '"', ":", 'ś', '!','.', '&', '&amp;', '#', ';', '[',']','domena.pl', '(', ')', '`', '%', '”', '„', '…');
  14. $miedzyn = array('-','-','-','e', 'e', 'o', 'o', 'a', 'a', 's', 's', 'l', 'l', 'z', 'z', 'z', 'z', 'c', 'c', 'n', 'n','-',"","","","","",'s','','', '', '', '', '', '', '', '', '', '', '', '', '');
  15. $string = str_replace($polskie, $miedzyn, $string);
  16. $string = str_replace("_", "-", $string);
  17.  
  18.  
  19. // usuń wszytko co jest niedozwolonym znakiem
  20. $string = preg_replace('/[^0-9a-z\-]+/', '', $string);
  21.  
  22. // zredukuj liczbę myślników do jednego obok siebie
  23. $string = preg_replace('/[\-]+/', '-', $string);
  24.  
  25. // usuwamy możliwe myślniki na początku i końcu
  26. $string = trim($string, '-');
  27.  
  28. $string = stripslashes($string);
  29.  
  30. // na wszelki wypadek
  31. $string = urlencode($string);
  32.  
  33. return $string;
  34. }


Może się komuś przyda.

Fajnie zamienia praktycznie wszystko na takie linki o jakie chodzi, tylko dlaczego pewne znaki i tak muszę zastępować str_replace (IMG:style_emoticons/default/questionmark.gif)
*._ ...to są jakieś specjalne znaki ?
Jak w takim razie działa to:
  1. $string = preg_replace('/[^0-9a-z\-]+/', '', $string);

Wykrzyknik usunie a nawiasów, gwiazdek, podkreślników nie ?
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: 5.10.2025 - 03:33