W3docs

show_source()

Découvrez la fonction PHP show_source() : syntaxe, paramètres, exemples d'utilisation et précautions de sécurité à respecter.

Dans cet article, nous allons nous concentrer sur la fonction PHP show_source(). Nous aborderons sa syntaxe, ses paramètres et sa valeur de retour, présenterons des exemples concrets, expliquerons quand l'utiliser et passerons en revue les risques de sécurité à éviter.

Qu'est-ce que la fonction show_source() ?

La fonction show_source() lit un fichier PHP et affiche son contenu dans le navigateur sous forme de HTML avec coloration syntaxique — les mots-clés, chaînes et commentaires sont encapsulés dans des balises <span> colorées pour faciliter la lecture du code.

show_source() est un alias de highlight_file(). Les deux fonctions sont identiques en tout point ; show_source() existe principalement pour des raisons de lisibilité. (Ne la confondez pas avec highlight_string(), qui met en évidence une chaîne de code passée directement en argument plutôt qu'un fichier sur le disque.)

Syntaxe

show_source(string $filename, bool $return = false): string|bool
ParamètreDescription
$filenameChemin vers le fichier PHP dont vous souhaitez mettre en évidence le code source. Obligatoire.
$returnSi true, le code mis en évidence est retourné sous forme de chaîne au lieu d'être affiché. Par défaut : false.

Valeur de retour : lorsque $return est false, la fonction affiche le code mis en évidence et retourne true en cas de succès ou false en cas d'échec. Lorsque $return est true, elle retourne le HTML mis en évidence sous forme de chaîne (sans rien afficher).

Utilisation de base

Passez le chemin du fichier à afficher. Le résultat mis en évidence est écrit directement sur la page :

<?php
$file = 'example.php';
show_source($file);
?>

Cela affiche le contenu de example.php dans le navigateur, encapsulé dans des balises <code> et des balises <span> colorées. La sortie étant en HTML, elle est destinée à être vue dans un navigateur, pas en ligne de commande.

Capturer la sortie au lieu de l'afficher

Passez true comme second argument lorsque vous souhaitez récupérer le HTML mis en évidence sous forme de chaîne — par exemple pour le journaliser, le mettre en cache ou l'insérer dans un gabarit :

<?php
$highlighted = show_source('example.php', true);

// $highlighted now holds the HTML markup, e.g.:
// <code><span style="color: #0000BB">&lt;?php ... </span></code>
echo strlen($highlighted) . " bytes of HTML\n";
?>

Rien n'est envoyé au navigateur tant que vous n'affichez pas vous-même la chaîne capturée avec echo.

Dans quels cas l'utiliser ?

  • Documentation et tutoriels — montrez aux lecteurs un exemple de fichier tel qu'il apparaît sur le disque, avec coloration syntaxique.
  • Débogage en développement — inspectez rapidement le contenu réel d'un fichier.
  • Visionneuses de fragments de code — combinez le mode $return = true avec votre propre système de gabarits.

Pour simplement lire le contenu brut d'un fichier (sans coloration), utilisez plutôt file_get_contents() ou readfile().

Considérations de sécurité

show_source() expose le code source complet d'un fichier, y compris toute la logique, les commentaires et les identifiants qu'il contient. Traitez-la comme un outil réservé au développement.

Le risque principal est de passer une entrée utilisateur comme nom de fichier. Si un paramètre de requête se retrouve dans show_source(), un attaquant peut lire des fichiers arbitraires sur votre serveur :

<?php
// DANGEROUS — never do this
show_source($_GET['file']);   // ?file=../config/database.php
?>

Pour rester en sécurité :

  • Ne passez jamais une entrée utilisateur non validée comme nom de fichier. Utilisez une liste blanche de fichiers autorisés plutôt que de faire confiance à la requête.
  • Gardez show_source() hors de la production. La coloration syntaxique appartient aux environnements de développement et aux pages de documentation, pas à un site en production.
  • Gardez à l'esprit que le code source mis en évidence peut révéler des mots de passe de base de données, des clés API ou d'autres secrets codés en dur dans le fichier.

Résumé

  • show_source() affiche le code source d'un fichier PHP en HTML avec coloration syntaxique.
  • C'est un alias de highlight_file() ; les deux fonctions se comportent de manière identique.
  • Le second argument optionnel ($return) retourne le HTML sous forme de chaîne au lieu de l'afficher.
  • Ne passez jamais d'entrée utilisateur à cette fonction et tenez-la hors de la production — elle peut exposer l'intégralité de votre code source.

Pratique

Pratique
En PHP, que fait la fonction show_source() ?
En PHP, que fait la fonction show_source() ?
Was this page helpful?