Bonjour à tous,

Je développe un site qui doit passer valide au validator W3C.

Lorsque j'affiche sur le site des infos encodés par l'utilisateur, j'utilise une fonction que j'ai créé et qui me remplace chaque caractère spécial (accent, €,...) par son code HTML.

Chaque caractère est comparé et modifié si besoin est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
$i=0;
while ($i < strlen($contenu))
{
	switch($contenu[$i])
	{
		case "é":
			$var_int .= "&eacute;";
			break; 
		case "è":
			$var_int .= "&egrave;";
			break; 
                ...
        }
$i++;
}
Dans cette fonction, j'aimerais également remplacer tous les "&" par "&amp;", j'ai donc ajouté ce bout de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
case "&":
     $var_int .= "&amp;";
     break;
Mais le problème est que si ma fonction tombe sur un autre code HTML (&nbsp; ou &egrave; ou ...) il le remplace aussi et cela fait planter tout le site.

Auriez-vous une idée de comment je pourrais remplacer ce caractère ?

Merci d'avance !!!