highlight_file()
Dans cet article, nous nous concentrons sur la fonction PHP highlight_file(), son fonctionnement et des exemples d'utilisation.
Dans cet article, nous nous concentrons sur la fonction PHP highlight_file(). Nous vous fournirons une vue d'ensemble de la fonction, de son fonctionnement, ainsi que des exemples de son utilisation.
Introduction à la fonction highlight_file()
La fonction highlight_file() est une fonction PHP intégrée qui affiche un fichier source PHP avec sa syntaxe colorisée en HTML. Elle est pratique lorsque vous souhaitez montrer le contenu d'un script sur une page web — par exemple dans un tutoriel, une galerie d'extraits de code, ou une documentation simple — sans avoir à écrire votre propre coloriseur.
Syntaxe
highlight_file(string $filename, bool $return = false): string|bool$filename— le chemin vers le fichier PHP que vous souhaitez afficher.$return— quand il vautfalse(la valeur par défaut), le HTML colorisé est envoyé directement vers le tampon de sortie et la fonction retournetrue. Quand il vauttrue, le HTML est retourné sous forme de chaîne plutôt qu'être affiché.
En interne, PHP tokenise le fichier et enveloppe chaque jeton (mots-clés, chaînes, commentaires, etc.) dans des éléments <span> avec des couleurs en ligne issues des directives highlight.* dans php.ini.
Note de sécurité :
highlight_file()révèle le code source brut d'un fichier, y compris les identifiants, clés API ou mots de passe de base de données qui y sont écrits. Ne la pointez jamais vers un fichier en vous basant sur des données utilisateur non validées, et ne l'exposez jamais pour des fichiers contenant des informations sensibles.
Comment utiliser la fonction highlight_file()
L'utilisation de la fonction highlight_file() est très simple. Il suffit d'appeler la fonction et de passer le nom du fichier PHP que vous souhaitez coloriser. Voici un exemple :
Comment utiliser la fonction highlight_file() ?
<?php
$file = 'example.php';
highlight_file($file);
?>Dans cet exemple, $file contient le chemin du script que nous voulons afficher. Si example.php contient :
<?php
$name = "World";
echo "Hello, $name!";appeler highlight_file($file) affiche un HTML similaire à celui-ci (les couleurs proviennent des attributs style en ligne, tronqués ici pour la lisibilité) :
<pre><code style="color: #000000"><span style="color: #0000BB"><?php
$name </span><span style="color: #007700">= </span><span style="color: #DD0000">"World"</span><span style="color: #007700">;
echo </span><span style="color: #DD0000">"Hello, $name!"</span><span style="color: #007700">;</span></code></pre>La fonction encapsule déjà tout dans un bloc <pre><code>, de sorte que les sauts de ligne et l'indentation d'origine sont préservés dans le navigateur sans aucun balisage supplémentaire de votre part.
Personnalisation de la sortie
La fonction highlight_file() dispose d'options de personnalisation intégrées limitées. Elle n'accepte qu'un second paramètre booléen $return. Lorsqu'il est défini à true, la fonction retourne le HTML colorisé sous forme de chaîne au lieu de l'envoyer directement au navigateur.
Cela est utile lorsque vous souhaitez post-traiter le balisage, le mettre en cache, ou l'intégrer dans un modèle plus grand au lieu de l'afficher immédiatement. Voici un exemple de capture de la sortie :
Exemple de capture de la sortie
<?php
$file = 'example.php';
$highlighted = highlight_file($file, true);
// $highlighted is already a complete <pre><code>...</code></pre> block,
// so you can store it, insert it into a template, or echo it directly.
echo $highlighted;
?>Vous pouvez modifier les couleurs globalement en définissant les directives highlight.comment, highlight.default, highlight.html, highlight.keyword et highlight.string dans php.ini (ou au moment de l'exécution avec ini_set()), mais la fonction émet toujours des styles en ligne — il n'existe aucun moyen de lui faire produire des classes CSS.
Si vous avez besoin d'une personnalisation avancée (classes CSS personnalisées, numéros de ligne, ou différents schémas de couleurs), highlight_file() n'est pas l'outil approprié :
- Pour coloriser du code qui se trouve dans une variable de type string plutôt que dans un fichier, utilisez
highlight_string(). - Pour lire le contenu d'un fichier sans colorisation, utilisez
readfile()oufile_get_contents(). - Pour un contrôle total sur la sortie, construisez un coloriseur personnalisé au-dessus de
token_get_all()de PHP, ou utilisez une bibliothèque tierce telle que highlight.js ou Prism côté client.
Conclusion
En conclusion, la fonction highlight_file() est un outil simple pour générer du code PHP formaté avec la colorisation syntaxique. En comprenant ses paramètres réels et ses limitations, vous pouvez l'utiliser efficacement pour l'affichage syntaxique de base ou l'intégrer avec des outils externes pour des besoins de formatage plus avancés.