Dogfish: PHP-Code mit Syntax-Highlighting und Zeilennummern

Beitrag lesen

Hallo du da draußen,

ich habe mir auch so ein Quellcode-Anzeig-Viech gebastelt, das sieht so aus:

<?php
 if($QUERY_STRING!="")
 {
  if(is_file($QUERY_STRING))
  {
   $titel = "Quelltext von ";
   $titel .= str_replace("./","",$QUERY_STRING);
  }
  elseif(is_dir($QUERY_STRING))
  {
   $titel = "Inhalt von ".str_replace("//","/",str_replace("//","/",str_replace(".","/",$QUERY_STRING)));
  }
  else{
   $titel = "Fehler";
  }
 }
 else
 {
  $titel = "Inhalt von /";
 }
 $countername = "quelltext";
 require("../all/head.php");
?>
 <body>
<?php
 if(is_file($QUERY_STRING))
 {
  $usr_cnt=0;

$fname = $QUERY_STRING;

$f = file($fname);

foreach($f as $aux_line)
  {
   $zeile = $usr_cnt + 1;
   $usr[$usr_cnt] = $zeile.": ".$aux_line;
   $usr_cnt++;
  }
  for ($idx = 0; $idx < $usr_cnt; $idx++)
  {
   $quelltext .= str_replace($rightusername,"Dies wurde aus Sicherheitsgründen aus dem Quellcode herausgeschnitten",
    str_replace($rightpasswd,"Dies wurde aus Sicherheitsgründen aus dem Quellcode herausgeschnitten",
    str_replace("Dogfish", "Dies wurde aus Sicherheitsgründen aus dem Quellcode herausgeschnitten",
    str_replace("173043", "Dies wurde aus Sicherheitsgründen aus dem Quellcode herausgeschnitten", $usr[$idx]))));
  }
  echo "<code><pre><nobr>";
  echo highlight_string($quelltext);
  echo "</nobr></pre></code>";
 }
 else
 {
  if(!is_dir($QUERY_STRING))
  {
   $QUERY_STRING = ".";
  }
  if($QUERY_STRING=="")
  {
   $QUERY_STRING=".";
  }
  $verz = opendir($QUERY_STRING);
  chdir($QUERY_STRING);
  ?>
  <h1>
   Hier gibt es die Quelltexte der einzelnen Seiten meiner Homepage
  </h1>
  <h3>
  <dir>
<?php
  $datei_cnt = 0;
  $dir_cnt = 0;
  while($file = readdir($verz))
  {
   if(is_file($file)){$dateiname[$datei_cnt] = $file;$datei_cnt++;}
   if(is_dir($file)){$dirname[$dir_cnt] = $file;$dir_cnt++;}
  }
  sort($dirname);
  sort($dateiname);
  for($i=0;$i<count($dirname);$i++)
  {
   if($QUERY_STRING==".")
   {
    if($dirname[$i] != "." && $dirname[$i] != "..")
    {
     echo "<a href = "index.php?$QUERY_STRING/$dirname[$i]"><img src = "Grafiken/dir.png"> $dirname[$i]</a><br>";
                          }
   }
   else
   {
    if($dirname[$i] != ".")
    {
     echo "<a href = "index.php?$QUERY_STRING/$dirname[$i]"><img src = "Grafiken/dir.png"> $dirname[$i]</a><br>";
    }
   }
  }
  for($i=0;$i<count($dateiname);$i++)
  {
   echo "<a href = "index.php?$QUERY_STRING/$dateiname[$i]"><img src = "Grafiken/file.png"> $dateiname[$i]</a><br>";
  }
  closedir($verz);
?>
  </dir>
  </h3>
<?php
 }
?>
 </body>
</html>
<!--

Dabei ist jetzt nicht alles zu verstehen, aber das Grundsystem schon. Es zeigt übrigens die Zeilennummern an.

Grüße von hier drinnen, aus Biberach,

Dogfish