Spesso nella realizzazione di siti dinamici in PHP, ci si trova a creare delle pagine che richiedono l’input dell’utente attraverso un form.
Il problema è che non possiamo sapere a priori se l’utente inserirà dei dati sintatticamente corretti, o se inserirà dati “mal formati” modificando la normale esecuzione della pagina PHP.

Per far fronte a questa problematica ci vengono incontro le espressioni regolari, che permettono di filtrare i dati secondo delle regole ben definite a priori.

In PHP si possono fare controlli su delle variabili con espressioni regolari grazie alle funzioni ereg() ed eregi(), l’unica differenza tra le due è che la prima è case sensitive.

Un’esempio della sintassi è il seguente:


eregi($expRegolare, $varDaControllare);

Dove $varDaControllare indica la variabile in cui verrà controllata l’espressione regolare in $expRegolare.
La funzione eregi restituisce FALSE se l’espressione regolare non è verificata.

Vediamo ora alcuni esempi gia pronti di espressioni regolari che potrebbero capitare frequentemente:

Validazione delle email:


^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$

Validazione di un dominio

^[a-z0-9\-\.]+\.(it|com|org|net|eu|info)$

Verificare l’estensione di un’immagine

^.+\.(bmp|jpeg|jpg|png|gif)$

Verificare l’estensione di un file qualunque

^.+\.rar$

Inoltre va ricordato che in qualunque form, oltre ai controlli con le espressioni regolari, andrebbe controllato che ogni campo sia definito e tutti gli altri controlli di base per evitare spiacevoli sorprese(Sql Injection e altro…)