Dateiinhalt einer log-file sortiert darstellen
Hallo liebe community,
ich bin gerade etwas ratlos, ich versuche eine log-file formatiert auszugeben.
Das auslesen an sich ist kein problem, aber jetzt kommt die Formatierung,
Ich hätte gerne eine Tabelle mit 4 Spalten und 6 zeilen. Jede Spalte ist für eine Stunde des tages.
Hier mal der Code den ich bisher habe:
Ausgabe:
ich bin gerade etwas ratlos, ich versuche eine log-file formatiert auszugeben.
Das auslesen an sich ist kein problem, aber jetzt kommt die Formatierung,
Ich hätte gerne eine Tabelle mit 4 Spalten und 6 zeilen. Jede Spalte ist für eine Stunde des tages.
Hier mal der Code den ich bisher habe:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<form method="post">
Tag:
<select name="day">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
Monat:
<select name="month">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
Jahr:
<select name="year">
<option value="2018">2018</option>
<option value="2019">2019</option>
</select>
<br>
<input type="submit" name="absenden" value="Log Laden">
</form>
<?php
if (empty($_POST)){
$day = date('d');
$month = date('m');
$year = date('Y');
}
if (!empty($_POST)){
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
}
echo "Logfile vom: ".$day.".".$month.".".$year;
//echo nl2br($logfile);
$result = array();
$file = explode("\n\r", file_get_contents('includes/botlog/'.$year.'_'.$month.'_'.$day.'_bot.log'));
foreach ( $file as $content ) {
$result = array_filter(array_map("trim", explode("\n", $content)));
}
echo "<pre>";
print_r ($result);
echo "</pre>";
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Array
(
=> Array
(
=> [00:00:09] Query Started
[1] => [00:00:09] Query Ready. Found: 50
[2] => [00:00:09] Success Chance: Build
[3] => [00:00:09] Buildtype: Special
[4] => [00:00:09] Lab Level: 0
[5] => [00:00:09] Roboter Level: 0
[6] => [00:00:09] Shipyard Level: 0
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 374664
Url: https://administrator.de/forum/dateiinhalt-einer-log-file-sortiert-darstellen-374664.html
Ausgedruckt am: 14.04.2025 um 07:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo TheAlex,
Gib doch mal konkrete Beispiele für wo Du her kommst und wo Du hin willst, dann kann Dir vielleicht auch jemand sagen wie Du dahin kommst.
Wie sieht die Quelldatei aus?
Wie soll die Zieltabelle aussehen?
Ohne die Infos ist der Code, der nicht macht was er soll, sinnentleert für alle ohne Glaskugel.
Gruß Frank
Gib doch mal konkrete Beispiele für wo Du her kommst und wo Du hin willst, dann kann Dir vielleicht auch jemand sagen wie Du dahin kommst.
Wie sieht die Quelldatei aus?
Wie soll die Zieltabelle aussehen?
Ohne die Infos ist der Code, der nicht macht was er soll, sinnentleert für alle ohne Glaskugel.
Gruß Frank
Hallo The Alex,
wenn Du verheimlichen möchtest wie die Tabelle aussehen soll, dann ist das Deine Sache, aber was soll dann Deine Frage?
Welche Uhrzeit?
Ist "00:00:09" die gemeinte Uhrzeit?
-[6] haben alle dieselbe, wozu also filtern?
Ein Tag hat üblicherweise 24 Stunden, Deiner nur vier?
Welche Vier sind es denn bei Dir?
4 Stunden, 4 Spalten, 6 Zeilen!
Soll's so aussehen:
Mitdenken kann man gerne machen, aber blind raten müssen ist unerfreulich.
Gruß Frank
wenn Du verheimlichen möchtest wie die Tabelle aussehen soll, dann ist das Deine Sache, aber was soll dann Deine Frage?
Welche Uhrzeit?
Ist "00:00:09" die gemeinte Uhrzeit?
-[6] haben alle dieselbe, wozu also filtern?
Ein Tag hat üblicherweise 24 Stunden, Deiner nur vier?
Welche Vier sind es denn bei Dir?
Zitat von @TheAlex:
...und in einer Tabelle mit 4 Spalten und 6 Zeilen ausgeben lassen. Jede Spalte steht dabei für eine Stunde des Tages!
...und in einer Tabelle mit 4 Spalten und 6 Zeilen ausgeben lassen. Jede Spalte steht dabei für eine Stunde des Tages!
4 Stunden, 4 Spalten, 6 Zeilen!
Soll's so aussehen:
12-13 Uhr | 15-16 Uhr | 3-4 Uhr | 17:15-18:15 Uhr
---------------+------------+---------+----------------
Query Ready. | Found: 50 | |
---------------+------------+---------+----------------
Success Chance | Build | |
---------------+------------+---------+----------------
Buildtype: | Special | |
---------------+------------+---------+----------------
Lab Level: | 0 | |
---------------+------------+---------+----------------
Roboter Level | 0 | |
---------------+------------+---------+----------------
Shipyard Level:| 0 | |
Mitdenken kann man gerne machen, aber blind raten müssen ist unerfreulich.
Gruß Frank
Hallo The Alex,
Gemeinhin gilt es als extrem unhöflich identische Fragen parallel in mehreren Foren zu stellen und nicht einmal daraufhinzuweisen und zu verlinken.
Du verdoppelst dadurch den Aufwand der Helfenden (Summe der Mannstunden), um möglichst schnell eine Lösung Deines Problems zu erhalten.
Es stellt eine Geringschätzung der Zeit dar, die Deine Mitmenschen in den jeweiligen Foren investieren.
Sieht man sich Dein Profil an, kann man feststellen, dass Du praktisch keine Beiträge geschrieben hast, um anderen zu helfen, sondern primär Hilfe einforderst.
Dass man Dir dann auch noch alle Infos aus der Nase ziehen muss ist unbegreiflich.
Alles in allem solltest Du Dich schämen.
Wie Du das mit den 4 Stunden gemeint hast scheint jetzt klar zu sein.
Du willst aber nicht eine Tabelle mit 4 Stunden-Spalten haben, sondern 6 Tabellen mit jeweils 4 Stunden-Spalten.
Das ist eine erweiterte Aufgabe.
Was der Wunsch nach 6 Zeilen soll ist weiterhin unklar.
Im Durchschnitt wären das dann mehr als 2.500 Einträge pro Stunde.
Ich vermute jetzt, Du meintest nicht eine Tabelle mit 6 Zeilen, sondern die 6 stellt die Anzahl der Tabellen dar, die jeweils sehr viele Zeilen haben werden.
(6 Tabellen à 4 Stunden x 4 Stunden pro Tabelle = 24 Stunden)
Warum muss ich immer noch Vermutungen anstellen, statt schon im Ausgangspost eine klare Anfrage zu lesen?
Gruß Frank
Zitat von Ulfikado:
Indem Du die Zeichenketten der Zeilen zerlegst und diese dann vergleichst und entsprechend ausgibst. Alles mit PHP-Grundkenntnissen machbar.
Zerlegen mit String-Funktionen (das PHP Manual ist Dein Freund), dann sortieren nach Zeit (falls nötig) und dann halt ausgeben.
Aber fixer geht es wie bereits in #4 gesagt mit einem Regex zum Zerlegen in die benötigten Teile, dann sortieren nach Zeit (falls nötig) und dann halt ausgeben.
Indem Du die Zeichenketten der Zeilen zerlegst und diese dann vergleichst und entsprechend ausgibst. Alles mit PHP-Grundkenntnissen machbar.
Zerlegen mit String-Funktionen (das PHP Manual ist Dein Freund), dann sortieren nach Zeit (falls nötig) und dann halt ausgeben.
Aber fixer geht es wie bereits in #4 gesagt mit einem Regex zum Zerlegen in die benötigten Teile, dann sortieren nach Zeit (falls nötig) und dann halt ausgeben.
Gemeinhin gilt es als extrem unhöflich identische Fragen parallel in mehreren Foren zu stellen und nicht einmal daraufhinzuweisen und zu verlinken.
Du verdoppelst dadurch den Aufwand der Helfenden (Summe der Mannstunden), um möglichst schnell eine Lösung Deines Problems zu erhalten.
Es stellt eine Geringschätzung der Zeit dar, die Deine Mitmenschen in den jeweiligen Foren investieren.
Sieht man sich Dein Profil an, kann man feststellen, dass Du praktisch keine Beiträge geschrieben hast, um anderen zu helfen, sondern primär Hilfe einforderst.
Dass man Dir dann auch noch alle Infos aus der Nase ziehen muss ist unbegreiflich.
Alles in allem solltest Du Dich schämen.
Wie Du das mit den 4 Stunden gemeint hast scheint jetzt klar zu sein.
Du willst aber nicht eine Tabelle mit 4 Stunden-Spalten haben, sondern 6 Tabellen mit jeweils 4 Stunden-Spalten.
Das ist eine erweiterte Aufgabe.
Was der Wunsch nach 6 Zeilen soll ist weiterhin unklar.
alle Einträge die zu 0 Uhr gehören
Du hast 61.000 Einträge und die Vermutung liegt nahe, dass es sich um die Einträge eines Tages handelt.Im Durchschnitt wären das dann mehr als 2.500 Einträge pro Stunde.
Ich hätte gerne eine Tabelle mit 4 Spalten und 6 Zeilen.
Warum dann die Vorgabe lediglich genau 6 Zeilen in der Tabelle haben zu wollen?Ich vermute jetzt, Du meintest nicht eine Tabelle mit 6 Zeilen, sondern die 6 stellt die Anzahl der Tabellen dar, die jeweils sehr viele Zeilen haben werden.
(6 Tabellen à 4 Stunden x 4 Stunden pro Tabelle = 24 Stunden)
Warum muss ich immer noch Vermutungen anstellen, statt schon im Ausgangspost eine klare Anfrage zu lesen?
Gruß Frank