Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Regułki preg_match i eregi
Forum PHP.pl > Forum > Przedszkole
webmaestro
Witajcie,
mam taka regułkę:
  1. preg_replace('#[^a-zA-Z0-9]+#', '', $_POST['login'])

Potrzebuje w niej aby znaki a-z, A-Z, i cyfry 0-9 byly nie zamieniane plus znaki specjalne takie jak kropka(.), myślnik(-), podłoga(_)


To samo potrzebuje do .htaccess
  1. RewriteRule ^user_([a-zA-Z0-9]+).html$ index.php?page=user [L]



I eregi:
  1. eregi('^[A-Za-z0-9]{3,30}$', $login)
Fifi209
No i jaki masz problem?

eregi nie używaj.
webmaestro
Czy tak zrobione jest poprawnie?

  1. preg_replace('#[^A-Za-z0-9._-]+#', '', $_POST['login'])



  1. RewriteRule ^user_([A-Za-z0-9._-]+).html$ index.php?page=user [L]



  1. preg_match('/^([A-Za-z0-9._-]{3,30})$/Diu', $login)
Fifi209
No to dodaj te znaki? Dalej nie widzę problemu.
webmaestro
Czy tak zrobione jest poprawnie?

  1. preg_replace('#[^A-Za-z0-9._-]+#', '', $_POST['login'])



  1. RewriteRule ^user_([A-Za-z0-9._-]+).html$ index.php?page=user [L]



  1. preg_match('/^([A-Za-z0-9._-]{3,30})$/Diu', $login)
Fifi209
Nie.
Zapoznaj się z tym:
http://pl.php.net/manual/en/regexp.reference.meta.php
webmaestro
A moglby ktos poprawic i dlaczego tak ma byc a nie tak jak jest ?
Fifi209, to co podałeś nic mi nie mówi...
Fifi209
że te znaki trzeba esceapować ;]
webmaestro
Fifi209, moglbys poprawic ?
Dzieki bardzo, bo ja więcej już nic nie zdziałam...
by_ikar
Kod
preg_replace('/^[\w\d\.]{3,30}$/i', '', $_POST['login'])


Kod
RewriteRule ^user_([\w\d\.]{3,30}).html$ index.php?page=user [L]


Kod
preg_match('/^([\w\d\.]{3,30})$/iu', $login)


Daszek (^) wewnątrz nawiasu kwadratowego oznacza zaprzeczenie ([^zaprzeczenie]). Znaki specjalne (kropka i tym podobne) escapuje się backslashem "\".
webmaestro
Cytat(by_ikar @ 3.10.2011, 10:43:01 ) *
Kod
preg_replace('/^[\w\d\.]{3,30}$/i', '', $_POST['login'])


Kod
RewriteRule ^user_([\w\d\.]{3,30}).html$ index.php?page=user [L]


Kod
preg_match('/^([\w\d\.]{3,30})$/iu', $login)


Daszek (^) wewnątrz nawiasu kwadratowego oznacza zaprzeczenie ([^zaprzeczenie]). Znaki specjalne (kropka i tym podobne) escapuje się backslashem "\".

Mi chodzi aby kazda z trzech reguł przyjmowała znaki a-z (bez polskich liter)(wielkie litery) oraz znaki takie jak kropka, myślnik(kreska), oraz podłoga _
preg_replace aby usuwala inne znaki z tego
RewriteRule aby przyjmowala znaki powyzej wymienione
a preg_match sprawdzal czy wystepuja te znaki wyzej wymienione czy inne

Pomoze ktos ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.