Buon 1° Maggio a tutti quanti, ho appena creato una funzione php che controlla la presenza di caratteri speciali in una stringa. La funzione controlla i caratteri ascii dal 33 al 47. Quello che vorrei fare io e inserire i caratteri uno ad uno. Ecco lo script:Codice PHP:
<?php
/**
* 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
//Invece vorrei inserire i caratteri ascii uno ad uno e non come fa php che preleva i caratteri dal 33 al 47 ho provato a scrivere $i=33;$=34;$=132 ma naturalmente mi da errore di sintassi.
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;
}
// controllo
if(checkCaratteri('#!stringaditest!#')){
echo 'presenti';
}
else{
echo 'non presenti';
}
// così stamperà 'presenti'
?>