Flux rss
Collection CommentÇaMarche.net

[Webmaster] Afficher facilement le code php/xhtml de vos pages

Bookmark Ajouter aux favoris / Partager
Dernière mise à jour le 6 décembre 2007 à 21:44 par sebsauvage
Publié par Ssylvainsab
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 : http://php.net/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 : http://sylvain.sab.free.fr/autres/source-haut.php

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

Inclure code PHP dans une page HTML Bonjour à tous, Nouveau sur le forum et débutant en programmation PHP, je souhaite insérer une requête PHP sur une page HTML (script de gestion de news) dont voici le code : www.commentcamarche.net/forum/affich-2310503-inclure-code-php-dans-une-page-html
Inclure du php ds une page html bonjour, je souhaite inclure du code php ds une page html..le code php que je souhaite insérer permet d'exécuter des requêtes vers une BDD mysql dois je mettre le code entre les balises body? quelles modifications dois je apporter au code php pour kil... www.commentcamarche.net/forum/affich-1568619-inclure-du-php-ds-une-page-html
[PHP] récupérer le code source d'une page web (Résolu) salut , je essayer de récupérer le code source d'une page web à partir de son URL. j'ai un code qui le fait avec Java mais j'ai besion en PHP ..... voila le code en java et si qlq peut me l'envoyer en PHP.......Merci ----------------------------------... www.commentcamarche.net/forum/affich-2266318-php-recuperer-le-code-source-d-une-page-web
On peut cacher le code source d'une page HTMLMythe: On peut cacher le code source d'une page HTML. Réalité: FAUX. Explications: Pour pouvoir afficher une page web (HTML), le navigateur doit - à un moment où un autre - avoir le code HTML en clair. Il y a donc toujours moyen de le... www.commentcamarche.net/faq/sujet-5712-on-peut-cacher-le-code-source-d-une-page-html
[Webmaster] Coloration syntaxique dans vos pages webSi vous avez un site web contenant des exemples de code (php, javascript, C#, Delphi, Python...), il peut être intéressant d'avoir une coloration syntaxique. C'est parfois pénible à réaliser, mais il existe une librairie Javascript qui permet de... www.commentcamarche.net/faq/sujet-3157-webmaster-coloration-syntaxique-dans-vos-pages-web
Sécuriser son code PHPIndépendamment de la sécurisation du système d'exploitation du serveur, du serveur HTTP lui-même et des options de configuration de PHP (php.ini), il est important de veiller à sécuriser les données provenant des utilisateurs (via les formulaires ou... www.commentcamarche.net/faq/sujet-10462-securiser-son-code-php
Cacher le code source d'une page WEB (Résolu)Je cherche comment pouvoir cacher le code source de mes pages WEB afin d'en protéger les données et sources diverses. Comment faire ? www.commentcamarche.net/forum/affich-3434-cacher-le-code-source-d-une-page-web
Decrypter code php ;$_D=strrev('edoced_46esabBonjour, je viens de telecharger un script de news gratuit, dans ce script il ya une page nommé news.php ou il ya un code php crypter si quelq'un peut m'aider a decrypter ce code j'ai bien cherché sur le net mais j'ai pas trouver une bonne solution en... www.commentcamarche.net/forum/affich-4021939-decrypter-code-php-d-strrev-edoced-46esab
Inserer du code php dans SPIPBonjour, Suite a une discussion précédente j'aimerais savoir ou insérer le code php pour que spip interroge une base de données autre que celle créer à la création du site spip ! www.commentcamarche.net/forum/affich-6064281-inserer-du-code-php-dans-spip
Implantation du code PhpL'interprétation du code par le serveur Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) incluses dans un code HTML à l'aide de balises spéciales et... www.commentcamarche.net/contents/php/phpimplant.php3
PHP - Affichage de texte sur le navigateurLe but de PHP est de permettre la création de pages web dynamiques, ainsi son but premier est de pouvoir envoyer des données au navigateur. Les trois fonctions standards PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces... www.commentcamarche.net/contents/php/phpaffich.php3
Javascript - Implantation du codeA quel emplacement insérer le Javascript dans votre page HTML Il existe plusieurs façons d'inclure du JavaScript dans une page HTML : Grâce à la balise En mettant le code dans un fichier Grâce aux événements Dans la balise... www.commentcamarche.net/contents/javascript/jsimplant.php3