Skocz do zawartości

Zostawienie tylko [a-z][0-9]


Rafal

Rekomendowane odpowiedzi

Żeby zrobić linki w mod_rewrite, warto je wyczyścić z niepotrzebnych znaków. Wyfiltrowałem co się dało, a i tak trafiają się jakieś nieprzewidziane znaki.

Najlepiej by było zostawić same znaki [a-z], [0-9] oraz "-". Wszystko co nie pasuje do reguły, usunąć.

Niebardzo wiem jak się za to zabrać. Myślałem, żeby zrobić to tak:

- Podzielić ciąg tekstowy na same znaki, każdy znak to kolejny element w tablicy.

- W pętli sprawdzać czy znak znajduje się w ciągu dozwolonych znaków.

- Jeśli nie ma, to wykasować element.

- Połączyć elementy w nowy ciąg tekstowy.

Wydaje mi się, że jest to zbyt okrężna droga.

Można to zrobić jakoś prościej, np. poprzez wyrażenia regularne?

Autor postu nie ponosi żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania zawartych w nim informacji.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki.

Zrobiłem tak:

$a = preg_replace("/[^a-z0-9]/", '-', $a);

Wcześniej mam zamianę na małe litery oraz:

$pl = array("ę", "ó", "ą", "ś", "ł", "ż", "ź", "ć", "ń");
$no_pl  = array("e", "o", "a", "s", "l", "z", "z", "c", "n");
$a = str_replace($pl, $no_pl, $a);

Od początku chciałem to w taki sposób zrobić, ale nie wiem czemu wpadło mi do głowy, że tak się nie da i nawet nie próbowałem. :D

Autor postu nie ponosi żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania zawartych w nim informacji.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności