• [^] # Re: peut être la solution

    Posté par . En réponse au journal Sessions PHP et validation HTML. Évalué à 3.

    au début de ton script :

    function my_htmlentities($str) {
    $str = htmlentities(html_entity_decode($str));
    $str = str_replace(""", '"', $str);
    return $str;
    }

    function xhtmlize($str) {
    if(preg_match_all("/<(.+?)>/msi", $str, $parts)) {
    while(list($i, $val)=each($parts[0])) {
    $str = str_replace($parts[0][$i], "<".my_htmlentities($parts[1][$i]).">", $str);
    }
    }
    return $str;
    }
    ob_start("xhtmlize");

    A la fin:

    ob_end_flush();

    En gros, ça va faire htmlentites() dans tout ce qu'il y a entre < et >. Si tu as déja mis &amp; dans tes liens, ne t'en fait pas, ça enlève tout ce qui est balise html avant (remplace &amp; par &). SI tu veux remplacer autrement (par une regexp plus complexe), remplace simplement le contenu de xhtmlize