Dans les derniers mois, j'avais suggéré deux engins de coloration syntaxique : GeSHi (Generic Syntax Highlighter) qui s'exécute côté serveur et syntaxhighlighter, qui est 100% JavaScript.
Aujourd'hui, dans le cadre d'une présentation de code par un programmeur, j'ai découvert une autre méthode pour colorer du code PHP. C'est presque trop simple car c'est une fonction built-in. Elle permet de reconnaître et d'orner les balises HTML, les commentaires, les mots clés ainsi que les chaînes de caractères selon un jeu de couleurs par défaut.
Avec highlight_file(), on peut fournir comme paramètre n'importe quel chemin de fichier PHP fonctionnel. Il le lira, lui appliquera les styles et enverra le résultat vers la sortie standard (le fureteur). De son côté, highlight_string() fait la même chose mais on doit lui fournir une variable contenant le code. Pour que ça fonctionne correctement, n'oubliez pas qu'il doit trouver les <?php ?>. Dans chaque cas, un deuxième paramètre optionnel (booléen) permet de retourner le code plutôt que de l'afficher.
Si les couleurs par défaut (orange, vert, bleu et rouge) vous déplaisent, vous pouvez en tout temps les redéfinir dans php.ini ou avec ini_set().
php.ini
highlight.string = #DD0000
highlight.comment = #FF9900
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000
ini_set()
echo ini_set('highlight.default', '#657253');Résultat :
echo ini_set('highlight.string', '#FFFFFF') ;
echo ini_set('highlight.keyword', '#C9E3A6; font-weight: bold;');
echo ini_set('highlight.comment', '#BBBBBB');
highlight_file('Zend/Loader.php');