Per verificare con PHP se una stringa contiene una lettera o una parola รจ sufficiente utilizzare la funzione strpos()
. Vediamo un esempio:
$a = 'Su Mr. Webmaster trovi tante cose su PHP';
if (strpos($a, 'PHP') !== false) {
echo 'trovato';
}
Importante sottolineare che l’uso di !== false รจ fondamentale: utilizzare “!= false” o “== true” non produrrebbe il medesimo risultato! La funzione strpos(), infatti, restituisce la posizione del carattere (offset) in corrispondenza del quale inizia la lettere o la parola cercata all’interno della nostra stringa oppure false se questa non viene trovata. Poichรฉ 0 รจ un offset valido e 0 potrebbe essere interpretato come false, l’unico operatore che ci da la certezza che la lettera o la parola non siano effettivamente presenti nella stringa รจ l’operatore “!==”.
Importante sottolineare, ancora, che la funzione strpos() รจ case sensistive, pertanto la risposta potrebbe essere negativa qualora il case della lattere o della parola cercata non sia corretto. Qualora si desideri effettuare ricerche NON case-sensitive รจ possibile utilizzare la funzione stripos():
$a = 'Su Mr. Webmaster trovi tante cose su PHP';
if (stripos($a, 'php') !== false) {
echo 'trovato';
}
Creiamo la nostra funzione personalizzata
Vediamo come costruire una funzione personalizzata per verificare la presenza si una sotto-stringa all’interno di una stringa con PHP:
function contiene($stringa, $cerca, $case_sensitive=false) {
if ($case_sensitive)
return strpos($stringa, $cerca) !== false;
else
return stripos($stringa, $cerca) !== false;
}
La nostra funzione prevede tre parametri:
- il primo รจ la stringa al cui interno vogliamo effettuare la ricerca;
- il secondo รจ la lettera o la parola che vogliamo cercare;
- il terzo รจ un booleano che indica se vogliamo, omeno, effettuare una ricerca case sensitive (di default รจ “false”).
Esempio di utilizzo:
$a = 'Su Mr. Webmaster trovi tante cose su PHP';
if (contiene($a, 'php') !== false) {
echo 'trovato';
}