# Textdatei mit php durchsuchen



## schiba (9. Januar 2004)

Hallo zusammen!

Bin neu hier und habe da auch gleich meine erste Frage 
Ich habe eine Textdatei vorliegen welche folgendermaßen aufgebaut ist:

[Rechnername]
Username:=#######
IP-Adresse:= #######
Name:=######
Datum:=8.1.2004
Uhrzeit:=14:12:20

In der Textdatei stehen ca. 300 solcher Einträger direkt untereinander!
Muss jetzt mit Php eine WebOberfläche bauen, in der ich den gesuchten Usernamen eingebe,
und mir dann alle Daten die zu dem User gehören aufgelistet werden.
Also im Endeffekt brauch ich ein Feld in dem ich den Usernamen eingeben kann, dann klicke ich
auf einen Button, dann soll die Textdatei durchsucht werden und es sollen alle Daten die zu dem 
User gehören angezeigt werden!

Ist das irgendwie möglich?

Vielen Dank schonmal

Greetz 
schiba


----------



## EngelchenB (9. Januar 2004)

Also ich würde per file() die Datei in ein Array bringen, und dann einfach mit einer for Schleife das resultierende Array in 5 Arrays, oder ein mehrdimensionales Array umsortieren.

So das du alle Rechnernamen in einem, alle IPS, alle....

Beim suchen suchst du mit array_search() die ID wo der rechnername steht, und schreibst aus allen anderen Arrays diese ID hin.

ZACK fertig 

Mod-Comment: Ich war mal so "frei" deinen Beitrag der Netiquette anzupassen, also überlege bitte, was jetzt anders ist als vorher, schau dir die unsere Netiquette durch und mache es bitte in Zukunft immer so, danke


----------



## schiba (9. Januar 2004)

Hi!

Erstmal vielen Dank für die Antwort!
Auch wenn es lästig ist, aber weiß jemand wo es da einen ähnlichen (oder sogar den passenden  ) Quelltext für gibt? Bin nämlich noch nicht so bewandert in php! Habe jetzt den halben morgen rum probiert und nach Beispielen gesucht, doch leider fruchtet das nicht so ganz!

Vielen Vielen Dank schonmal!

Greetz
schiba


----------



## EngelchenB (9. Januar 2004)

Sorry wenn die Variablen net 100% so übergebenwerden wie es standartmäsig der Fall ist, aber so wird die Lesbarkeit des Scriptes erhöht. Ich bitte vor der Verwendung noch die korrekten Variablen alla $_GET['search'] zu verwenden.

Danke


hier der Code:


```
<?PHP
// Datei öffnen und in array
	$File = file("test.txt");

// Umsortieren in ein mehrdimensionales array
	$j=0;
	$h=0;
	while (list ($key, $val) = each ($File)){
		if($j == 6) { $j = 0; $h++;}

		if($j != 0) {$DATA[$j][$h] = strstr($val, " "); }
		if($j == 0) {$DATA[$j][$h] = $val; }
		$DATA[$j][$h] = substr($DATA[$j][$h],0,-2);
		$j++;
	}
if(isset($search)){
// Suchen
	$i=0;

	while (list ($key, $val) = each ($DATA[0])){
		$temp = $DATA[0][$i];
		if($temp == "$search"){ $found_ID = $i;}
		$i++;
	}
// Anzeigen
	for($i=0;$i<6;$i++){ echo $DATA[$i][$found_ID]."<BR>"; }
}
?>
<FORM><INPUT TYPE="text" NAME="search"></FORM>
```

getestet und funktioniert hat es mit dieser Textdatei:


```
EngelchenB
Username:= Engelchen
IP-Adresse:= 192.168.0.1
Name:= Peter Engel
Datum:= 8.1.2004
Uhrzeit:= 14:12:20
EngelchenC
Username:= EngelC
IP-Adresse:= 192.168.0.2
Name:= Engel_Lap
Datum:= 8.1.2004
Uhrzeit:= 14:12:20
```


----------



## schiba (9. Januar 2004)

Hi!

Ersteinmal vielen Dank, doch leider funktioniert das bei mir nicht.
Wenn ich es anstarte sehe ich nur ein Eingabefeld. Gebe ich da dann
einen gesuchten Usernamen (der auch in der Datei steht) ein passiert gar nichts!
Das Eingabefeld "springt" nur um 3-4 Zeilen nach unten!

Woran kann das liegen!

Hier der Quelltext so wie ich ihn jetzt habe:

<?PHP
// Datei öffnen und in array
         $File = file("c:/logdata/logdata.txt");

// Umsortieren in ein mehrdimensionales array
    $j=0;
    $h=0;
    while (list ($key, $val) = each ($File)){
        if($j == 6) { $j = 0; $h++;}

        if($j != 0) {$DATA[$j][$h] = strstr($val, " "); }
        if($j == 0) {$DATA[$j][$h] = $val; }
        $DATA[$j][$h] = substr($DATA[$j][$h],0,-2);
        $j++;
    }
if(isset($search)){
// Suchen
    $i=0;

    while (list ($key, $val) = each ($DATA[0])){
        $temp = $DATA[0][$i];
        if($temp == "$search"){ $found_ID = $i;}
        $i++;
    }
// Anzeigen
    for($i=0;$i<6;$i++){ echo $DATA[$i][$found_ID]."<BR>"; }
}
?>
<FORM><INPUT TYPE="text" NAME="search"></FORM>



Vielen Dank schonmal!

Greetz
schiba


----------



## EngelchenB (9. Januar 2004)

War das Script denn mit meiner Textdatei lauffähig?
Zum Debuggen ist es hilfreich wenn man noch eine Zeile hinzufügt um kontrollieren was man den genau einträgt. Und zwar beim auslesen der Textdatei unter dieser Zeile:

$DATA[$j][$h] = substr($DATA[$j][$h],0,-2);

das hier noch einfügt:

echo "h: ".$h." j: ".$j." Wert: ".$DATA[$h][$j]."<br>";

Durch diesen Output kann man sehen was er genau ins Array wo einträgt 

Ist dir auch klar das es Case Sensitive ist? Sprich Groß und Klein ist nicht das gleiche....


----------

