Relis le post de Cyrano, il t'a donné l'explication de la sensiblité à la casse (minuscule/majuscule).Non, ca c'est pour remplacer, mais moi je veux faire break; pour éviter que le message ne soit envoyé.
La méthode de Ripat était bien, mais elle bloque les mots en majuscules et minuscules en meme temps.
Moi je veux juste bloquer une selection de mot en majuscule.
Je me suis rendu compte de l'inéfficacité de ce script.$banwords = array('cretin', 'idiot', 'imbecile'); // le plus court: $motif = '#\b(?:'.implode('|', $banwords).')\b#i'; if (preg_match($motif, $message)){ exit; } // le plus efficace foreach ($banwords as $v){ $motif = '#\b'.$v.'\b#i'; if (preg_match($motif, $message)){ exit; } }
$grosmot = Array('cretin','imbecile','idiot');
$messagepropre = str_replace($grosmot, '***censuré***', $message);
if ($message != $messagepropre) exit;
-> problème : ca fait exit dès le chargement de la page.$grosmot = array('cretin','imbecile','idiot');
foreach ($grosmot as $texte) {
$comparaison = ereg ($message,$texte);
if($comparaison) exit();
}
-> message d'erreur à la ligne $comparaison = ereg ($message,$texte);<?php
function censure($msg)
{
$grosmot = array('cretin', 'crétin','imbecile', 'imbécile','idiot');
$nb_gm = 0;
foreach ($grosmot as $texte)
{
$texte = "^.*(". $texte .")e?.*$";
if(ereg ($texte,$msg))
{
$nb_gm++;
}
}
$message = ($nb_gm > 0) ? ("<p>Mots interdits trouvés dans le texte soumis, message censuré !</p>") : "<p>". $msg ."</p>\n";
return $message;
}
$message1 = "Ce type est le plus parfait imbécile et sa femme est l'idiote du village";
$message2 = "Ce type est le plus parfait gentleman et sa femme est la meilleure des hôtesses";
echo(censure($message1));
echo(censure($message2));
?>