Highlight html : colorisation de code html

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 644 fois - Téléchargée 27 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
-
highlight_string et highlight_file colorient le code php, moi ca colorie le html ;)
francois62
Messages postés
2
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
18 juin 2006
-
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
-
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
515
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009
-
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.