Gå til innhold

Vise apache logg, sjule linjer fra "logg" mappen?


Anbefalte innlegg

Hei, prøver å få til en enkel måte å se apache loggen.

Problemet er at "logg" mappen ikke skal vises i loggen på siden.

 

<?php

$path	 = "apache.log";

$handle   = fopen($path, "r");
$linjer   =  file($path);
$alinjer  = count($linjer);

$start	= $alinjer-50;

echo("<table>");
echo "<tr><td width=\"300\"></td><td width=\"220\"></td><td></td></tr>";
for ($i = $start; $a <= $alinjer; $i++) {

 $ptxt = $linjer[$i];

 if(preg_match("/GET \/logg\//i", $ptxt)) {
 // Ikke gjør noe =/
 }
 else {

 $logg = explode("[", $ptxt);
 $logg2 = explode("]", $logg[1]);

 $del1 = htmlentities($logg[0]);
 $del2 = htmlentities($logg2[0]);
 $del3 = htmlentities($logg2[1]);

echo "<tr><td>$del1</td><td>$del2</td><td>$del3</td></tr>";
 }
}


?>
</table>

 

Dette er det jeg har smelt sammen til nå :)

 

Problemet med dette er at linjer som ikke skal vises (GET logg osv) telles som en linje alikevell, dermed blir det 50 minus alle "logg" linjene som vises.

Hvis da loggen blir lastet 50 ganger før det skjer noe annet vil loggen vises tom.

 

Noen som har en enkel løsning på det? :)

Lenke til kommentar
Videoannonse
Annonse

Hva om du leser loggen linje for linje fra slutten av filen i en while loop. Etterhvert som du finner linjer som skal skrives ut putter du dem i en array. Når array oppnår 50 linjer eller du når begynnelsen av filen skriver du ut innholdet av arrayet i den rekkefølgen du vil.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...