PHP .txt datei formatiert ausgeben

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Graf_Tec

Grünschnabel
Hallo Leute,
Ich spiele seit ein paar Tagen mit Php, jetzt habe ich eine kleine Website geschrieben (Nur zum experimentieren) welche beim betreten Uhrzeit, Ip, Host, Clientname und die Website die aufgerufen wurde speichert...

Hier mal der Code:
PHP:
<?php
date_default_timezone_set("Europe/Berlin");
$timestamp = time();
$datum = date("d.m.Y", $timestamp);
$uhrzeit = date("H:i", $timestamp);

$website = "ZENSIERT";

$ClientName =  php_uname('n');
$fp = fopen("files/Infos.txt", "a");
$ipAddress = gethostbyname($_SERVER['REMOTE_ADDR']);
$ip = $_SERVER["REMOTE_ADDR"];
$host = gethostbyaddr($ip);

fputs($fp,"\nUhrzeit: ".$datum. " - ".$uhrzeit. " Uhr,  Ip: ".$ipAddress.",   Host:".$host.",  Clientname: ".$ClientName. ",  Website: ".$website);
fclose($fp);
?>

In der Infos.txt schaut das dann so aus:

Code:
Uhrzeit: 12.09.2020 - 14:46 Uhr,  Ip: 127.0.0.1,   Host:DESKTOP-Zensiert,  Clientname: DESKTOP-Zensiert,  Website: Zensiert
Uhrzeit: 12.09.2020 - 14:57 Uhr,  Ip: 127.0.0.1,   Host:DESKTOP-Zensiert,  Clientname: DESKTOP-Zensiert,  Website: Zensiert
Uhrzeit: 12.09.2020 - 14:59 Uhr,  Ip: 127.0.0.1,   Host:DESKTOP-Zensiert,  Clientname: DESKTOP-Zensiert,  Website: Zensiert
Uhrzeit: 12.09.2020 - 15:07 Uhr,  Ip: 127.0.0.1,   Host:DESKTOP-Zensiert,  Clientname: DESKTOP-Zensiert,  Website: Zensiert

Mit dem Folgendem Code gebe ich das ganze in meiner Read.php wieder aus:
PHP:
<?php

if (!file_exists("files/Infos.txt")) {
echo "Datei nicht vorhanden.";
exit;
}
$dz = fopen("files/Infos.txt", "r");
if (!$dz) {
echo "Datei konnte nicht geöffnet werden.";
exit;
}
while (!feof($dz)) {
$reihe = fgets($dz, 200);
echo $reihe;
echo "<br />";
}
fclose($dz);
?>

Nun ist meine Frage, wie kann ich die .txt datei ausgeben, sodass ich die einzelnen Werte in eine Tabelle eintragen kann?
Damit das dann z.b. so aussieht: (Die Werte da sind nur Platzhalter) bspTABELLE.png Bzw wie kann ich die txt so auslesen dass ich sie einfach hier einsetzen kann?
Code:
<tr><th>Uhrzeit</th><th>Ip</th><th>Host</th><th>Clientname</th><th>Website</th></tr>

Noch ein schönes Wochenende und Lg,
Graf_Tec
 

Sprint

Erfahrenes Mitglied
Wenn du die txt Datei nicht auch noch selbst lesen können willst, würde ich die Bezeichner Uhrzeit, IP usw. weglassen und die Daten nur durch Komma getrennt in die Datei schreiben. Dann kannst du sie später zeilenweise auslesen und mit explode() in ein Array auftrennen. Die einzelnen Teile kannst du dann ganz einfach mit ihrem Index ansprechen und in die Tabelle einsetzen.

Den Umweg über $timestamp kannst du dir übrigens sparen. Wenn bei date() keine Zeit angegeben wird, wird immer die aktuelle Zeit genommen.
 

Sempervivum

Erfahrenes Mitglied
Am besten gleich beim Schreiben in die Datei die Struktur so anlegen, dass sie der Tabelle in deinem Bild entspricht, d. h. die Beschriftung, Name, Uhrzeit etc. in die erste Zeile und danach nur noch die Werte. Dann bist Du schon beim CSV-Format, siehe z. B. hier:
https://de.wikipedia.org/wiki/CSV_(Dateiformat)Dort findest Du dann auch einen Verweis auf die PHP-Funktion fgetcsv(), mit der Du die Datei wieder einlesen und in einem Array ablegen kannst.
 

Graf_Tec

Grünschnabel
Am besten gleich beim Schreiben in die Datei die Struktur so anlegen, dass sie der Tabelle in deinem Bild entspricht, d. h. die Beschriftung, Name, Uhrzeit etc. in die erste Zeile und danach nur noch die Werte. Dann bist Du schon beim CSV-Format, siehe z. B. hier:
https://de.wikipedia.org/wiki/CSV_(Dateiformat)Dort findest Du dann auch einen Verweis auf die PHP-Funktion fgetcsv(), mit der Du die Datei wieder einlesen und in einem Array ablegen kannst.
Kann ich das ganze dann immer noch als .txt speichern oder dann als .csv?
 

Graf_Tec

Grünschnabel
Wenn du die txt Datei nicht auch noch selbst lesen können willst, würde ich die Bezeichner Uhrzeit, IP usw. weglassen und die Daten nur durch Komma getrennt in die Datei schreiben. Dann kannst du sie später zeilenweise auslesen und mit explode() in ein Array auftrennen. Die einzelnen Teile kannst du dann ganz einfach mit ihrem Index ansprechen und in die Tabelle einsetzen.

Den Umweg über $timestamp kannst du dir übrigens sparen. Wenn bei date() keine Zeit angegeben wird, wird immer die aktuelle Zeit genommen.
ok Danke, bin grad auch drauf gekommen das ich die Bezeichnungen weg lassen sollte
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…