Ok l'ho scritta di corsa.. ho sbagliato funzione (substr con str_replace) nello scriverla al volo.
questa va:
codice:
function badWords($sText){
$Bwords = array("cretino","stupido","imbecille","porcapaletta");
$Gwords = array("cret**o","stu**do","imbe**lle","por**paletta");
$sText = str_replace($Bwords,$Gwords,$sText);
return $sText;
}
credo però che intendesse questa, perchè la funzione che sostituisce con asterischi l'aveva già.
Si può anche modificare facendo in modo che sia leggibile la prima e l'ultima lettera soltanto senza dover creare manualmente un array di sostituzioni:
codice:
function badWords($sText){
$Bwords = array("cretino","stupido","imbecille","porcapaletta");
for($i=0;$i<count($Bwords);$i++){
$sText = str_replace($Bwords[$i],akSub($Bwords[$i]),$sText);
}
return $sText;
}
function akSub($Bwords){
for($i=1;$i<(strlen($Bwords)-1);$i++){
$Bwords[$i] = "*";
}
return $Bwords;
}
dopo il $i la parentesi quadra è andata a capo, ma deve stare a fianco ovviamente!