
88871
18.01.2012, aktualisiert um 16:35:05 Uhr
PHP Mehrere Sachen aus Textfile auslesen
Hoied
ich logge drei sachen beim login. das schreiben funktioniert auch bestens. der ordner wo geschrieben wird, hat chmod 777
falls sich der user 4x eingeloggt hat, steht im textfile folgendes (beispiel):
gibt es da ideen wie ich das wieder auslesen kann und anhand des | sortieren kann ? oder dumm von mir den trenner | zu nehmen ? muesste ich mit explode arbeiten ?
kenne mich im handling von txt files noch nicht so aus.
thanx fuer alle tipps
ich logge drei sachen beim login. das schreiben funktioniert auch bestens. der ordner wo geschrieben wird, hat chmod 777
// holen der ip adresse
if (!isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$client_ip = $_SERVER['REMOTE_ADDR'];
}
else
{
$client_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
// unixtime
$now = time();
// daten definieren
$text = "". $id . " | " . $client_ip . " | " . $now . " | " ."\n";
// namen der textdatei definieren, in dem falle die user id
$dateiname = "meinORDNER/" . $id . ".txt";
// datei zum schreiben öffnen, falls nicht vorhanden, datei erstellen
$handler = fOpen($dateiname , "a+");
fWrite($handler , $text);
fClose($handler); // Datei schließen
falls sich der user 4x eingeloggt hat, steht im textfile folgendes (beispiel):
3453 | 66.66.66.66 | 1326890811 |
3453 | 66.66.66.66 | 1326892222 |
3453 | 66.66.66.66 | 1326893333 |
3453 | 66.66.66.66 | 132689444 |
kenne mich im handling von txt files noch nicht so aus.
thanx fuer alle tipps
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 179125
Url: https://administrator.de/forum/php-mehrere-sachen-aus-textfile-auslesen-179125.html
Ausgedruckt am: 07.04.2025 um 19:04 Uhr
11 Kommentare
Neuester Kommentar
Tagchen,
Die Zeilen 2 und 3 kannste schon mal getrost raus löschen, die werden nicht benötigt !
Das ist mir echt ein Rätsel wie wie du dir die Verbindung zur foreach-Schleife gedacht hast
Vielleicht hilft es dir so ja ein bisschen besser das zu verstehen
"Sprechende Variabelnamen"
Okay, vielleicht habe ich das nun auch ein bisschen übertrieben aber es soll ja uch nur verdeutlichen was wie passiert ;)
Achso ja, jetzt hätte ich es beinahe veressen !
Ich habe je nun zweimal Gebrauch von print_r() gemacht, sehr nützlich um sich Variableninhalten (besonders Array) anzusehen
PHP-Manual - print_r()
~Arano
Die Zeilen 2 und 3 kannste schon mal getrost raus löschen, die werden nicht benötigt !
Das ist mir echt ein Rätsel wie wie du dir die Verbindung zur foreach-Schleife gedacht hast
Vielleicht hilft es dir so ja ein bisschen besser das zu verstehen
<?php
// ...
$arrZeilenDerDatei = file("PFAD_ZUR_DATEI");
foreach($arrZeilenDerDatei as $strEineZeileDerDatei)
{
// $strEineZeileDerDatei = "3453 | 66.66.66.66 | 1326890811 ";
$arrSpaltenDerZeile = explode(" | ", $strEineZeileDerDatei);
print_r($arrSpaltenDerZeile);
}
// ...
?>
Okay, vielleicht habe ich das nun auch ein bisschen übertrieben aber es soll ja uch nur verdeutlichen was wie passiert ;)
<?php
$arrLogfile = file("PFAD_ZUR_DATEI");
foreach($arrLogfile as $strLog)
{
$arrLog = explode(" | ", $strLog);
print_r($arrLog);
}
?>
Achso ja, jetzt hätte ich es beinahe veressen !
Ich habe je nun zweimal Gebrauch von print_r() gemacht, sehr nützlich um sich Variableninhalten (besonders Array) anzusehen
PHP-Manual - print_r()
~Arano
Hi,
auch das ist kein Problem. PHP bietet jede menge Funktionen an mit denen man ein Array bearbeiten kann: PHP-Manuals - Arrays
Dein Zauberwort heißt: "umgekehrt" -> zu Englisch -> "reverse"
~Arano
auch das ist kein Problem. PHP bietet jede menge Funktionen an mit denen man ein Array bearbeiten kann: PHP-Manuals - Arrays
Dein Zauberwort heißt: "umgekehrt" -> zu Englisch -> "reverse"
~Arano
Nee, das ist nicht ganz richtig !
Allerdings dachte ich auch erst an rsort()
Die "sort"-Funktionen sortieren ja auch gleichzeitig !
Am Anfang jeder Zeile steht die ID die immer gleich ist. Aber dann kommt die IP !!!!
So würden die "sort"-Funktionen zuerst nach dem erstem IP-Block sortieren, dann nach dem 2., dem 3. und schließlich dem 4. und erst daaan nach dem Timestamp.
Das würde uns eine Sortierung nach der IP-Adresse bescheren bei der es erst bei doppelten Einträgen zu einer Zeitlichen Sortierung kommt.
Oder kurz gesagt, alles würde total Durcheinander geraten.
Wir brauchen also eine Funktion die lediglich die Reihenfolge umdreht/umkehrt->reverse OHNE neu zu sortieren.
wäre ja auch beinahe drauf reingefallen
~Arano
Edit
Jetzt habe ich vergessen meinen schnellen Testcode beizufügen... -.-
Allerdings dachte ich auch erst an rsort()
Die "sort"-Funktionen sortieren ja auch gleichzeitig !
Am Anfang jeder Zeile steht die ID die immer gleich ist. Aber dann kommt die IP !!!!
So würden die "sort"-Funktionen zuerst nach dem erstem IP-Block sortieren, dann nach dem 2., dem 3. und schließlich dem 4. und erst daaan nach dem Timestamp.
Das würde uns eine Sortierung nach der IP-Adresse bescheren bei der es erst bei doppelten Einträgen zu einer Zeitlichen Sortierung kommt.
Oder kurz gesagt, alles würde total Durcheinander geraten.
Wir brauchen also eine Funktion die lediglich die Reihenfolge umdreht/umkehrt->reverse OHNE neu zu sortieren.
wäre ja auch beinahe drauf reingefallen
~Arano
Edit
Jetzt habe ich vergessen meinen schnellen Testcode beizufügen... -.-
<?php
$arr = array("aa|1","cc|2","bb|3");
print_r($arr);
// Array
// (
// => aa|1
// [1] => cc|2
// [2] => bb|3
// )
$arr = array("aa|1","cc|2","bb|3");
arsort($arr);
print_r($arr);
// Array
// (
// [1] => cc|2
// [2] => bb|3
// => aa|1
// )
$arr = array("aa|1","cc|2","bb|3");
$arr = array_reverse($arr);
print_r($arr);
// Array
// (
// => bb|3
// [1] => cc|2
// [2] => aa|1
// )
?>