Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Funkcja zamieniająca ciąg na małe litery i usuwająca znaki
czernin
post 20.10.2012, 09:12:09
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 14.06.2012

Ostrzeżenie: (0%)
-----


Witam,

Mam taki kod:

  1. function linki($text) {
  2. $spacja = Array(" " => "-");
  3. $text = strtolower($text);
  4. return strtr($text, $spacja);
  5. return $text = preg_replace('/[\W_ążźćńśłóę]/i', '', $text);
  6. }


Podany wyżej kod zamieni ciąg:

Kod
PrZykŁaDowY CiĄg 1543 ."\)(*&^%[


Na:

Kod
przykŁadowy-ciĄg-1543-.\"\\)(*&^%[


Jak przekształcić funkcję, aby zamieniła ciąg na:

Kod
przykadowy-cig-1543-


Tzn aby znaki typu !@#$%^ i polskie znaki były usuwane z ciągu?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
sowiq
post 20.10.2012, 09:24:14
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Masz złe podejście. Zamiast robić listę rzeczy (znaków) niedozwolonych, które będziesz usuwał, powinieneś zrobić listę rzeczy (znaków) dozwolonych i usuwać wszystko inne.

  1. $text = str_replace(' ', '-', $text);
  2. $text = strtolower(' ', '-', $text);
  3. $text = preg_replace('/[^a-z0-9]/', '', $text);
  4. return $text;


[edit]
A czemu nie chcesz zamienić np.
PrZykŁaDowY CiĄg 1543 ."\)(*&^%[
na
przykladowy-ciag-1543

Polecam tą zajebistą klasę: https://github.com/l3pp4rd/DoctrineExtensio...til/Urlizer.php Oprócz polskich znaków, genialnie radzi sobie z innymi 'krzaczkami', np. tureckimi.

Ten post edytował sowiq 20.10.2012, 09:27:57
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:32