Hallo Thomas,
Danke erstmal für deine Antwort, ich hab mir mal die Befehlssyntax mit explode angeschaut und auch getestet.
Ich bekomme auch eine Ausgabe aber nur inet Adresse und nicht die IP. Schau mal
> <?php
> // Liest eine Datei in ein Array. Hier gehen wir über HTTP, um die
> // HTML Datei einer URL zu bekommen
> $lines = file ('messagesbackup/testfile');
// initialisiere das assoziative Array, das das Ergebnis aufnehmen wird
$ergebnis['date'] = "";
$ergebnis['ip'] = "";
> // Durchgehen des Arrays und Anzeigen des HTML Source inkl. Zeilennummern
> foreach ($lines as $line_num => $line) {
> // echo "{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";
// Zeilen nicht ausgeben, sondern verarbeiten :-)
// Zeile 0 enthält das Datum
> // 0 : From MAILER-DAEMON Sat Dec 17 13:21:06 2005
if ($line_num == 0) {
// From MAILER-DAEMON Sat Dec 17 13:21:06 2005
// Teile die Zeichenkette am Leerzeichen auf: Separator: " "
// Nach dem zweiten Leerzeichen interessiert der ganze Rest: Limit: 3
// Ergebnis: From $parts[0]
// MAILER-DAEMON $parts[1]
// Sat Dec 17 13:21:06 2005 $parts[2]
$parts = explode(" ", $line, 3);
$ergebnis['date'] = $parts[2]; // Datum erledigt
}
// Suche weiter nach der Zeile mit dem Inhalt inet Adresse
> // 46 : inet Adresse:192.168.19.2 Bcast:192.168.19.255
// Hier sollte Code folgen, der diese ermittelt
// unter anderem kannst Du die Funktion strpos() verwenden.
> }
> ?>
und wie bekomme ich nun die Inet Adresse und das Datum ausgefiltert ?
Datum denke ich mal wäre zu realisieren mit strtotime.
Nö, mit explode(), siehe oben, zur IP-Adresse:
// 46 : inet Adresse:192.168.19.2 Bcast:192.168.19.255
Gibt es nur eine Zeile, die den Text "inet Adresse" enthält. Wenn ja, wie in Deinem vorherigen Posting, dann brauchst Du nur nach diesem Text zu suchen. Wenn nein, wie kannst Du die Zeile von anderen, die ebenfalls den Text "inet Adresse" enthalten, unterscheiden.
Freundliche Grüße
Vinzenz