[expreg] coloration synthaxique (x)html

Description

Petite fonction qui colorise du code (X)HTML. Elle est basique et ne traite que le principal.
L'indentation du code d'entrée est restituée à la sortie.
Je l'utilise pour un système de wall et pour des tutorials.

ATTENTION !!
Cette fonction travail avec les entités du type '&...;' or celles-ci sont interprétées par le site.
UN COPIER/COLLER du code exposé(présent à titre d'exemple) est donc FORTEMENT DECONSEILLE !
Il vous faut télécharger le .zip(c'est lourd, je sais).

Pour modifier les couleurs:
span.dtd => styles DTD
span.bal => styles des balises
span.attrib => styles des attributs
span.attribVal => styles des valeurs des attributs

exemple => http://indiansoul.free.fr/ex_csx/index.php

Source / Exemple :


<html>
<head>
<title>Coloration synthaxique XHTML</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
code { font: 10px Verdana; color: #000; background: #f3f3f3; margin: 0; padding: 5px; display: block; clear: both; margin-top: 10px;}
span.dtd { background: ffff00; color: #ff0000; }
span.bal { color: #ff4e00; }
span.attrib { color: #3a97d9; }
span.attribVal { color: #31bb68; font-weight: bold;}
</style>
</head>
<body>
<?php
# Déclaration et définition de la fonction
function print_xhtml($p_chaine) {
  $tabOccRech = array("\t",' ',"\r\n");
  $tabOccRemp = array(' ',' ',"<br />\n");
  $chBase = str_replace($tabOccRech,$tabOccRemp,htmlentities(stripslashes($p_chaine)));
  $chDtd = preg_replace('`(<!DOCTYPE.*?>)`i','<span class="dtd">\\1</span>',$chBase);
  $chBal = preg_replace('`(</?\w+(?:>)?|(?: /)?>)`i','<span class="bal">\\1</span>',$chDtd);
  $resultat = preg_replace('`((?:\w+:)?\w+(?:-\w+)?=")(.*?)(")`i','<span class="attrib">\\1<span class="attribVal">\\2</span>\\3</span>',$chBal);
  return ($resultat);
}
# Un petit exemple
$donnees = "<ul id=\"navMain\">\r\n";
$donnees .= "  <li><a href=\"#\" title=\"description\">lien1</a></li>\r\n";
$donnees .= "  <li><a href=\"#\" title=\"description\">lien2</a></li>\r\n";
$donnees .= "  <li><a href=\"#\" title=\"description\">lien3</a></li>\r\n";
$donnees .= "</ul>\r\n";

echo "<code>\n",print_xhtml($donnees),"
\n";
?>
</body>
</html>
</code>

Conclusion :


Avec $donnees du type $_POST/$_GET/ dans une utilisation normal.

Pour plus d'informations, voir code source de la page index.php(page de l'exemple).

Codes Sources

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.