Je suis de retour !
Voilà mon titre est un peu bizarre mais je vous explique :
Pour contrôler les entrées d'un formulaire (genre blog), je veux remplacer tous les caractères qui ne font pas partie de ma liste par un espace (ou autre). En sachant qu'il s'agit d'UTF8. J'ai développé ce script avec mes pieds et il toune mais il n'est pas beau... Est-ce que quelqu'un pourrait m'aider ?
Voici l'URL du résultat : http://www.adinfos.info/sitedelafamille/carac.php
Voici le code :
Code : Tout sélectionner
<html>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<body>
<?php
// Caracteres acceptes accents et majuscule de a-z àâ éèêë îï ôö ùüû 0-9 &"#'(-_@)+=$£*%!:.,?/€ espace et retour à la ligne
//Si Magic Quotes activées ok deslashes
if (get_magic_quotes_gpc)
{
$chaine_a_controler = stripslashes($_POST['test']) ;
}
else
{
$chaine_a_controler = $_POST['test'] ;
}
// Caracteres autorisés
$caracteres_autorises = array (' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9','à','â','ä','ç','é','è','ê','ë','î','ï','ô','ö','ù','û','ü','À','Â','Ä','Ç','É','È','Ê','Ë','Î','Ï','Ô','Ö','Ù','Û','Ü','&','"','#','\'','(','-','_','@',')','+','=','$','£','*','%','!',':','.',',','?','/','€',"\r","\n") ;
// Taille de la chaine
$taille = mb_strlen($chaine_a_controler,"UTF8") ;
// variable qui contiendra le résultat final
$new_chaine = "" ;
for ($i=0 ; $i<=($taille-1) ; $i++)
{
$present = 0 ;
for ($j=0 ; $j<=(count($caracteres_autorises)-1) ; $j++)
{
if ((mb_substr($chaine_a_controler,$i,1,"UTF8") == $caracteres_autorises[$j]))
{
$new_chaine .= mb_substr($chaine_a_controler,$i,1,"UTF8") ;
$present = 1 ;
}
}
if ($present != 1)
{
$new_chaine .= " " ;
}
}
echo 'Nouvelle chaine = '.nl2br($new_chaine).'<br />' ;
?>
<form action="carac.php" method="post">
<textarea name="test"></textarea>
<input type="submit" value="C'est parti">
</form>
</body>
</html>