Vi sono vari metodi per controllare una URL e validarla, quello che proponiamo in questo articolo si basa sull'utilizzo della funzione preg_match() e delle espressioni regolari.
preg_match() è un costrutto che ci consente di controllare, tramite espressioni regolari, la presenza o meno di determinati frammenti di testo o caratteri all'inteno del valore che le viene passato come parametro sotto forma di variabile o come valore puro.
Nell'esempio riportato, sottoporremo alla funzione diverse tipologie di Url; eseguendo il codice proposto vedremo come vengano passate al vaglio le varie componenti delle url e come queste siano utilizzate per considerarne valida o meno la forma:
<?php
//array contenente varie tipologie di url
$url = @array('http://www.claudiogarau.it',
'http://www.claudiogarau.it/index.php',
'http://www.claudiogarau.it/scripts/index.php',
'http://www.claudiogarau.it/scripts/download/index.php',
'http://claudiogarau.it',
'http://claudiogarau.scripts.it',
'https://claudiogarau.it',
'www.claudiogarau.it'
);
//controlliamo i valori dell'array con un ciclo
foreach($url as $val){
$validate = @preg_match(
'|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i',
$val);
//stampa a video dei risultati
if($validate) {
echo '<b>'.$val. '</b>: Url valida.<br />';
} else {
echo '<b>'.$val. '</b>: Url non valida.<br />';
}
}
?> |