Eliminer les fautes de validité w3c courantes.

Contenu du snippet

Cette source vous permettra de corriger automatiquement les erreurs de fermeture des balises uniques et l'oubli du doctype pour les rendre valides au normes W3C. Ici la source est remplie d'une page d'exemple que vous devrez remplacer par votre page, en mettant le premier bout de php au début de chacune et en terminant toutes vos pages par <? ob_end_flush; ?> Pour qu'une partie de votre page ne soit pas modifié entourez-la de deux balises <!--sans-validation--> (paramètre modifiable dans la décclaration de $delimiter)

Source / Exemple :


<?
function validw3c($buffer)
{
    $delimiter='<!--sans-validation-->';
    $extract=explode($delimiter,$buffer);
    foreach($extract as $key=>$piece) if($key%2==0)
    {
        $ci=array('#<((img|br|link|hr|meta)([^>])*)/>#','#<((img|br|link|hr|meta)([^>])*[^/>])>#','#<(img|br|link|hr|meta)>#','#(\s){2,}/>#');
        $re=array('<$1 />','<$1 />','<$1 />',' />');
        $result.=preg_replace($ci,$re,$piece);
    }
    else $result.=$piece;
    if(false===strpos($result,'<!DOCTYPE')) {
    $result='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
'.$result;  }
    return $result;
}
ob_start("validw3c");
?>
<html>
<head>
<title>Valide</title>
<link type="xml">
<meta content="Bla bla">
</head>
<body>
<h1>Page de test</h1>
<br>
<img src="ceci" alt="Rien"><br>
<img src="celà" alt="Rien"/>
<!--sans-validation-->
<br>
<!--sans-validation-->
<br >
<br />
</body>
</html>
<?
ob_end_flush();
?>

Conclusion :


Vous pouvez donc maintenant vous dispenser de doctype et coder avec des <br> ou <meta> sans vous soucier de votre validité en incluant simplement ce code.

Je rajouterais surement d'autres corrections comme par exemple la transformation des attributs interdits (border, align, name etc.) en style CSS.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.