begin process at 2012 05 24 23:00:44
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > HIGHLIGHT HTML : COLORISATION DE CODE HTML

HIGHLIGHT HTML : COLORISATION DE CODE HTML


 Description

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

Source

  • <?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'>&lt;</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'>&gt;</span>".$ends;
  • }
  • function color_html($code)
  • {$code = str_replace('<','&lt;',$code);
  • $code = str_replace('&lt;!--',"</span><span style='color: {$this->color_coms}'>&lt;!--",$code);
  • $code = "<span style='color: {$this->color_base}'>".preg_replace_callback("#&lt;([/a-zA-Z0-9!\?]+)(( [^>]*)?>)#si",array(&$this,'int_html'),$code)."</span>";
  • if ($this->option_nl2br) $code = nl2br($code);
  • return $code;
  • }
  • }
  • ?>
<?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'>&lt;</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'>&gt;</span>".$ends;
  }
  
  function color_html($code)
  {$code = str_replace('<','&lt;',$code);
   $code = str_replace('&lt;!--',"</span><span style='color: {$this->color_coms}'>&lt;!--",$code);
   $code = "<span style='color: {$this->color_base}'>".preg_replace_callback("#&lt;([/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

?>


 Sources du même auteur

UPLOAD
MINI SHOUTBOX EASY-INSTALL
CRÉER DES MINIATURES D'IMAGES (THUMB)
Source avec Zip PETITE GALERIE DYNAMIQUE
CODES RGB ET HEXA DES COULEURS.

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

Commentaires et avis

Commentaire de LocalStone le 08/06/2004 16:35:58

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

Commentaire de DHKold le 08/06/2004 18:45:51

Pourquoi pas, seulement je ne vois pas trop comment, sauf si tu veux afficher les balises parsées en les coloriant :p

Commentaire de francois62 le 10/06/2004 16:43:34

La source est sympa pour exercie mais je crois bien que highlight_string() et highlight_file() font la même chose

Commentaire de DHKold le 11/06/2004 00:04:21

highlight_string et highlight_file colorient le code php, moi ca colorie le html ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales