puoi crearti una funzione
codice:
/**
* Controlla se in una stringa sono presenti determinati caratteri speciali
* @param string $stringa
* @return boolean
*/
function checkCaratteri($stringa){
// array con l'ascii dei caratteri speciali
$cs = array();
// inserisco i codici ascii da 33 a 47
for($i=33;$i<=47;$i++){
$cs[] = $i;
}
// variabile per stabilire se i caratteri speciali sono presenti
$presenti = false;
// ciclo la stringa
for($i=0; $i<strlen($stringa);$i++){
// ascii del carattere nella posizione $i
$ascii = ord($stringa[$i]);
// controllo se ascii si trova nell'array con i caratteri speciali
if(in_array($ascii, $cs)){
$presenti = true;
// se è presente un solo carattere è inutile continuare il ciclo quidi esco
break;
}
}
// ritorno se sono presenti oppure non
return $presenti;
}
Nell'array $cs puoi inserire anche altri caratteri speciali (devi inserire il codice ascii del carattere speciale), basta fare $cs = ord('@'); ad esempio oppure puoi inserire direttamente il codice ascii così: $cs[] = 45;
Così puoi aggiungere qualsiasi carattere speciale tu voglia.
Per i codici ascii --> http://www.asciitable.it/ascii.asp
Così se controlli cosa ti ritorna puoi vedere se sono o non sono presenti caratteri speciali
codice:
// controllo
if(checkCaratteri('#!stringaditest!#)){
echo 'presenti';
}
else{
echo 'non presenti';
}
// così stamperà 'presenti'
Saluti!