Raketenwilli: PHP-Code im Browser sichtbar machen

Beitrag lesen

Das genannte Problem ist trivial. Im einfachsten Fall öffnest Du das PHP-Skript als Datei und ersetzt alle Vorkommen von < und > durch die Entitys:

<?php
### File: showFile.php

$FileName="test.php";
if ( is_readble( $FileName ) ) {
   echo '<pre><code>' 
   . htmlspecialchars( file_get_contents( $FileName ) ) 
   . '<code></pre>';
} else {
   trigger_error(
      'Fatal: Die Datei "' . $FileName . '" konnte nicht gelesen werden.',
      E_USER_ERROR
   );
}

Das ist der simple Teil. Schwieriger ist es, dafür zu sorgen, dass die Anzeige von unerlaubten Dateien nicht stattfindet (SEHR WICHTIG!) - oder eine Syntaxhervorhebung zu integrieren.

Mehr dazu hier:

Einer weitere, einfache und sichere Möglichkeit besteht darin, die Datei mit der Endung '.phps' abzulegen und den Apache Webserver wie folgt zu konfigurieren:

<FilesMatch ".+\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

und dann einfach auf diese Datei mit der Endung '.phps' zu verlinken.

Wenn es Dein Server ist, dann kannst Du in einer Shell auf einem unixoiden Server mittels

cd /etc/apache2;
grep -Rn phps *;

herausfinden, ob obige Konfiguration (die übrigens den Voreinstellungen entspricht) schon eingetragen wurde. Hint: Unter RedHat-artigen Linuxen kann das auch im Ordner /etc/httpd/ oder /etc/httpd2/ erfolgt sein…

Wenn es so ist, genügt es, die Datei mit der Endung '.phps' abzulegen und abzurufen.