CrazyCat Programming Factory
rendre internet plus accessible
 

Utiliser facilement GeSHi

Logo phpVoici le système utilisé sur ce site.
Il permet de faire la coloration syntaxique du code contenu entre des balises prédéfinies, avec une adaptation automatique au langage.

En fait, il suffit d'une expression régulière et d'un appel à une fonction qui va permettre de lancer GeSHi avec les bonnes options.
<?
// Le code est contenu dans $code
$pattern = "!\<lang=([a-z]+)>(.*)\</lang>!Us";
// L'expression régulière qui prend tout ce qui est compris entre <lang=???> et </lang>

require_once "./geshi.php";
// On inclut la librairie
$hlcode = preg_replace_callback($pattern, "hl_code", $code);
// On appelle la fonction hl_code avec la regexp
echo $hlcode;

function hl_code($matches) {
   $glang = $matches[1];
   // Récupération du langage
   $code = $matches[2];
   // Récupération du code
   $my_parse = new GeSHi($code, $glang);
   $hl_parse = $my_parse->parse_code();
   return $hl_parse;
}
?>


Voila, c'est très simple d'utilisation et ça fonctionne.
Par contre, il faut bien faire attention à la codification que vous utilisez pour les langages, elle doit correspondre à celle de GeSHi.

©2006-2019 Geek Zone | eggdrop.fr | zeolia.net