VIVEZ LE
FOOTBALL !

Webmaster - Afficher facilement le code php/xhtml de vos pages

Si vous voulez proposer a vos visiteurs de voir la source de vos fichiers (PHP ou HTML), il y a plusieurs solutions.



En php


Afficher le code php


La fonction highlight_file permet d'afficher le code php d'un fichier.

Exemple pour afficher le code de index.php :
highlight_file(index.php);
On peut également utiliser la constante __FILE__ pour afficher la source du fichier en cours.

Il convient d'utiliser la fonction exit pour ne pas exécuter le reste du script.

On peut assembler ces différents bouts de code pour afficher la source dans une certaine condition, ici si la variable get "source" existe :
//Si la variable get source existe
if(isset($_GET['source']))
    {
        //on affiche le code php et arrête le script avec exit
        highlight_file(__FILE__);
        exit;
    }
Attention : Prenez garde a ne pas afficher vos mots de passe en utilisant cette astuce.

L'inconvénient de cette astuce est qu'elle ne colore que le code php, pas le html.
Pour colorer le code html avec une librairie javascript, voir :
Coloration syntaxique dans vos pages web
Ou bien avec geshi (en php) :
http://www.siteduzero.com/tuto-3-7340-1-colorer-son-code.html

Plus d'informations sur la fonction highlight_file


Cependant, le code html généré par cette fonction est invalide, car elle ne place pas de doctype, de balises body, html...

J'ai crée une fonction permettant d'afficher la source tout en gardant une page valide.
Voir

Voici cette fonction.
Elle est à utiliser au milieu de votre code html, après la balise body.
Vous pouvez l'adapter facilement si vous le désirez.
function afficher_code_php()
  {
    if (isset($_GET['source']))
      {
        echo '<p><a href="',$_SERVER['PHP_SELF'],'">Retour</a></p>';
        echo '<p>Ceci est le code php du fichier :</p>';
        $page=highlight_file($_SERVER['SCRIPT_FILENAME'], TRUE);
        $page=str_replace(
          array('<code>','/code>','&nbsp;','</font>','<font color="'),
          array('<pre style="padding:1em;border:2px solid black;overflow:scroll">','/pre>',' ','</span>','<span style="color:'),$page);
        echo $page;
        echo '<p><a href="',$_SERVER['PHP_SELF'],'">Retour</a></p>';
        echo '</body></html>';
        exit;
      }
  }

Afficher le code html


On peut utiliser view-source pour afficher la source html de la page.

Par exemple, ce lien :
<a href="view-source:http://www.commentcamarche.net/">Le code html de CCM</a>
affichera le code html de la page d'accueil de ccm.

La variable php $_SERVER['PHP_SELF'] correspond au nom du fichier et a son chemin par rapport a la racine du site.

Par exemple, si vous écrivez ce code
<?php echo $_SERVER['PHP_SELF'];?>
dans le fichier "index.php" rangé dans un répertoire nommé "repertoire/" de votre site, le rendu sera :
/repertoire/index.php
Donc, on peut combiner ces deux astuces pour afficher la source html d'un fichier en écrivant :
<a href="view-source:ladresse_de_votre_site<?php echo $_SERVER['PHP_SELF'];?>">Source html</a>

En html


Il suffit d'utiliser l'astuce précédente en marquant le nom du fichier.
Par exemple :
<a href="view-source:ladresse_de_votre_site/index.html">Source de la page d'acceuil</a>

Informations


L'astuce du view-source ne marche pas avec des chemins en relatifs.
Ce code ne fonctionnera pas :
<a href="view-source:index.html">Code de la page d'accueil.</a>

Le fait d'utiliser la variable PHP_SELF pour afficher le nom du fichier revient au même, mais elle est plus pratique je trouve, notamment si comme moi vous utilisez une seule page source.

Note de Sylvain :
view-source est censé marcher sur tous les navigateurs récents, mais chez moi ça ne fonctionne qu'avec Firefox.

Voir aussi

Publié par Ssylvainsab - Dernière mise à jour le 17 novembre 2009 à 16:15 par marlalapocket
Ce document intitulé « Webmaster - Afficher facilement le code php/xhtml de vos pages » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Suggestions
  •  Webmaster - Afficher facilement le code php/xhtml de vos pages
  •  Afficher résultat du code php » Bonjour, je suis novice en informatique et j'aimerais commencer le php pour cela j'ai tappé un script tel que <html> <body> <?php echo "bonjour"; ?> </body> </html> que j'appelle bonjour.php , j'aimerais que ce que j'ai tappé m'affiche uniquement...
  •  PHP - Rediriger sur une autre page (redirection) » Fiches pratiques : N'importe quel webmaster réalise un jour qu'un de ses fichiers possède un nom qui ne convient pas ou que l'arborescence des fichiers doit être modifiée. Cependant, s'il est relativement facile de changer les liens sur son site, il est beaucoup plus...
  •  [Formulaire+PHP] résultat sur la même page (Résolu) » Meilleure réponse: Salut Merci pour ta réponse. En fait c'était vraiment tout bête Voici le code HTML de mon formulaire <form name="form" method="post" action=""> <select name="liste"> Ici je rempli la liste avec le contenu d'une base de données </select>
  •  Du code php apparait sur la page (Résolu) » Bonsoir à tous ! J'ai mis dans une balise php du code de connection à la base de données et une partie de ce code apparait ! Mon navigateur affiche : "); mysql_select_db($db) or die ("Base non sélectionnée:".mysql_error().""); ?> Il manque juste les...
  •  Un code php, pour masquer la page allopasse. » Meilleure réponse: Tu fais une condition au debut de l'affichage des données : de la sorte que si le visiteur n'est pas en train de payer il ne puisse pas y accèder. Par exemple quand il commence le paiement tu mets une variable à 0 en plus dans ton <form
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
Webmaster - Faire facilement un espace d'upload
PHP - Les ressemblances à ne pas confondre