Highlight html : colorisation de code html

0/5 (4 avis)

Snippet vu 5 093 fois - Téléchargée 29 fois

Contenu du snippet

C'est simplement une petite class qui permet de coloriser du code HTML.

Source / Exemple :


<?php
class highlight_html
{
 var $color_base = '#000000'; //Couleur du texte hors-balises
 var $color_coms = '#008000'; //Couleur des commentaires et scripts
 var $color_tags = '#000099'; //Couleur des tages (a, div, span, img, table...)
 var $color_dels = '#000099'; //Couleur des delimiteurs < et >
 var $color_atts = '#FF9900'; //Couleur des attributs (href, src, class, style...)
 var $color_vals = '#0000FF'; //Couleur des valeurs d'attributs
 
 var $option_egal = TRUE;     //Défini si le = prend la couleur de l'attribut, et les " la couleur de la valeur
 var $option_nl2br = TRUE;    //Défini si les retours de lignes doivent être remplacés par des <br />

  function color_tags($cod)
  {
   $mask = "#([a-zA-Z0-1\-_]+)=(('|\")|)(.*?)(?(3)(\\3)|( |>))#si";
   if (!$this->option_egal) $repl = "<span style='color: {$this->color_atts}'>\\1</span>=\\3<span style='color: {$this->color_vals}'>\\4</span>\\3\\6";
   if ($this->option_egal) $repl = "<span style='color: {$this->color_atts}'>\\1=</span><span style='color: {$this->color_vals}'>\\3\\4\\3</span>\\6";
   return preg_replace($mask,$repl,$cod);
  }

  function int_html($match)
  {
   $bals = array('script','style');
   if (empty($match[2])) $match[2] = '';
   $ends = "<span style='color: {$this->color_base}'>";
   return "</span><span style='color: {$this->color_dels}; font-weight: bold'><</span><span style='color: {$this->color_tags}; font-weight: bold'>$match[1]</span>".substr($this->color_tags($match[2]),0,-1)."<span style='color: {$this->color_dels}; font-weight: bold'>></span>".$ends;
  }
  
  function color_html($code)
  {$code = str_replace('<','<',$code);
   $code = str_replace('<!--',"</span><span style='color: {$this->color_coms}'><!--",$code);
   $code = "<span style='color: {$this->color_base}'>".preg_replace_callback("#<(/a-zA-Z0-9!\?+)(( [^>]*)?>)#si",array(&$this,'int_html'),$code)."</span>";
   if ($this->option_nl2br) $code = nl2br($code);
   return $code;
  }
}
?>

Conclusion :


Après on l'utilise simplement comme ceci:

<?php

$high = new highlight_html; //Nouvelle instance de la class
$page = file_get_contents('page.html'); //On charge une page html
echo $high->color_html($page); //Colorisation du code HTML

?>

A voir également

Ajouter un commentaire Commentaires
DHKold Messages postés 153 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 29 mai 2005 2
11 juin 2004 à 00:04
highlight_string et highlight_file colorient le code php, moi ca colorie le html ;)
Utilisateur anonyme
10 juin 2004 à 16:43
La source est sympa pour exercie mais je crois bien que highlight_string() et highlight_file() font la même chose
DHKold Messages postés 153 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 29 mai 2005 2
8 juin 2004 à 18:45
Pourquoi pas, seulement je ne vois pas trop comment, sauf si tu veux afficher les balises parsées en les coloriant :p
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009
8 juin 2004 à 16:35
Tiens, je sais pas si ça peut t'interresser, mais regarde cette source made-in-moi : http://www.phpcs.com/code.aspx?ID=18901.
Faudrait combiner nos deux sources et on pourrait faire un truc d'enfer. Enfin, je dis ça comme ça :)
++
LS

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.