Bonjour,
J'ai un filtre HTML que j'ai récupéré sur le forum, mais celui-ci a un probleme, il ne m'affiche pas les "<" des balises exemple :
P>Ca FONT color=#ff0000>marche
P> EM>pas très STRONG>bien
Voici le code du filtre html, merci de votre aide.
$TagIsAllowed = false ;
$CurrentTag = "";
$FilteredText="";
$i=0;
$j=0;
/* On parse le texte */
while($i<strlen($text))
{
if( ($text{$i} != "<") OR (($text{$i} == "<") && ($text{$i+1}=="/" ) ) ) //on cherche des tags html
{
$FilteredText = $FilteredText . $text{$i}; //si pas de tag html, pas de filtrage
$j++;
$i++;
}
else
{
$i++; //on s'interresse au caractere suivant le <
/* on verife que le tag html utilisé est autorisé */
foreach ($tags as $TestTag)
{
$CurrentTag = substr($text,$i,strlen($TestTag));
if (substr_count($CurrentTag,$TestTag) == 1) //si le tag est autorisé on agit en consequence
{
$TagIsAllowed = true ;
$FilteredText = $FilteredText . ">" . $CurrentTag ;
$i = $i + strlen($TestTag) ;
}
}
/* si le tag n'est pas autorisé on efface tout jusqu'à la fin du tag */
if ($TagIsAllowed = false)
{
while ((substr($text,$i,2)!= "</" )&&($i<strlen($text)))
{
$i++;
}
}
}
}
/*Remplacement des \n par des <br />*/
$FilteredText = preg_replace('/\n/i', '<br />', $FilteredText);
return $FilteredText;
}
?>