PHP-Einfach.de
  • PHP Tutorial
  • MySQL Tutorial
  • Für Fortgeschrittene
  • Webhosting
  • Jobs
  • Forum

Logfiles mit PHP generieren

10. Februar 2020
  1. Home
  2. »
  3. Für Fortgeschrittene
  4. »
  5. Script-Beispiele
  6. »
  7. Logfiles mit PHP generieren

Wenn der Besucher eine Seite aufruft, dann werden verschiedene Daten in ein "Logfile" gespeichert. Es werden IP, Datum, die aufgerufene Datei, Status der Datei, die Größe der Datei und woher der Besucher kommt gespeichert.

So sieht ein Logeintrag aus:

1
09.10.2015 22:47:10 5.178.162.14 /index.php Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0

Das Logscript sieht wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
$format = "csv"; //Moeglichkeiten: csv und txt
 
$datum_zeit = date("d.m.Y H:i:s");
$ip = $_SERVER["REMOTE_ADDR"];
$site = $_SERVER['REQUEST_URI'];
$browser = $_SERVER["HTTP_USER_AGENT"];
 
$monate = array(1=>"Januar", 2=>"Februar", 3=>"Maerz", 4=>"April", 5=>"Mai", 6=>"Juni", 7=>"Juli", 8=>"August", 9=>"September", 10=>"Oktober", 11=>"November", 12=>"Dezember");
$monat = date("n");
$jahr = date("y");
 
$dateiname="logs/log_".$monate[$monat]."_$jahr.$format";
 
$header = array("Datum", "IP", "Seite", "Browser");
$infos = array($datum_zeit, $ip, $site, $browser);
 
if($format == "csv") {
$eintrag= '"'.implode('", "', $infos).'"';
} else {
$eintrag = implode("\t", $infos);
}
 
$write_header = !file_exists($dateiname);
 
$datei=fopen($dateiname,"a");
 
if($write_header) {
if($format == "csv") {
$header_line = '"'.implode('", "', $header).'"';
} else {
$header_line = implode("\t", $header);
}
fputs($datei, $header_line."\n");
}
 
fputs($datei,$eintrag."\n");
fclose($datei);
?>

Die Logdateien werden im Ordner logs hinterlegt, dabei ein Logfile je Monat. Bei Format könnt ihr zwischen txt und csv wählen. Bei txt werden die Logdaten in eine Textdatei geschrieben, bei csv in ein Format welches sich mittels Excel bequem öffnen lässt.

Das Script im Detail

In Zeile 5 bis 7 werden verschiedene Information abgefragt, beispielsweise die IP, die aufgerufene Seite sowie die Browser- und Betriebssystemkennung des Besuchers.

Zeile 9 bis 13 behandeln die Benennung des Logfiles. Zuerst wird ein Array mit den deutschen Monatsnamen erstellt, danach die Information zum Monat und Jahr abgefragt (siehe Datum und Uhrzeit). Die Logfiles werden im Ordner logs abgespeichert beispielsweise mit dem Namen log_November_2015.txt.

Zeile 15 und 16 beinhaltet unsere verschiedenen Informationen, die wir in den Logfile schreiben wollen und speichert dies für die leichtere Weiterverarbeitung in einem Array ab.

Zeile 18 bis 22 überprüft das Format. Falls csv ausgewählt wurde, werden die Einträge im Format "Datum";"IP";"Seite";"Browser" abgespeichert. Im Falle von Text-Dateien im Format "Datum IP Seite Browser". Dies geht mittels der Funktion implode() .

Zeile 24 überprüft, ob die Datei bereits existiert. Falls nicht, wird in Zeile 28-36 ein Header in die Datei geschrieben. Der Header beinhaltet die Information, welche Daten in den verschiedenen Spalten stehen.

Die eigentlichen Daten zum Aufruf werden in Zeile 38 in die Datei geschrieben.

Autor: Nils Reimers
Zurück: Kontaktformular
Weiter: URLs im Text identifizieren

Für Fortgeschrittene

  • Objektorientierte Programmierung
  • PHP Sicherheit
  • Script-Beispiele
    • Loginscript
    • E-Mails mit Anhang versenden
    • Gästebuch
    • PDFs erstellen
    • Besucherzähler mit Reload-Sperre
    • Kontaktformular
    • Logfiles mit PHP generieren
    • URLs im Text identifizieren
  • Codeschnipsel
  • Stellenmarkt
Mit freundlicher Unterstützung von:
  • Punkt191 Werbeagentur
  • Casinopilot24.com
  • Casino utan Spelpaus
  • Casino utan Spelpaus med Trustly
  • Neueonline-Casinos.com
  • CasinoHEX.at
  • Decasinos.de
  • Privatkredit247.com
  • CasinoAdvisers.com
  • parhaatuudetkasinot.com
  • BitcoinBuster.com
  • CryptoCasinos.com

Hoster – Geringste Ausfallzeit

  1. webgo Ø 1 Min.
  2. netcup Ø 6 Min.
  3. Linevast Ø 7 Min.
  4. manitu Ø 13 Min.
  5. Mittwald Ø 14 Min.
  6. dogado Ø 15 Min.
  7. All-Inkl.com Ø 18 Min.
  8. Hetzner Ø 20 Min.
  9. bplaced Ø 20 Min.
  10. Host Europe Ø 20 Min.
» Mehr erfahren

Impressum | Datenschutz | Auf PHP-Einfach.de werben

© PHP-Einfach.de 2003 - 2021

Um dich beim Lernen von PHP und MySQL zu unterstützen verwenden wir Cookies. OK Weitere Infos
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Notwendige
immer aktiv

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Nicht notwendige

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.