PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   while? (http://www.selfphp.de/forum/showthread.php?t=3973)

schrempman 13.04.2003 17:06:17

while?
 
Hi,
ich habe ein Problem mit der while Schleife.

Mein Problem:

Ich bekomme sessionwerte übermittelt (name, alter)

Nun möchte ich überprüfen ob der user schon existiert, dazu will ich die user.txt durchsuchen und nach dem namen und alter suchen.
Sollte er die Kombination name + alter in der user.txt finden, so soll ein bestimmter Text angezeigt werden!

Inhalt der user.txt

name | alter
name1 | alter1
name2 | alter2

Allerdings bekomm ich eine endlos Schleife inclusive "String errors"....
Vielleicht kennt von euch einer eine andere Methode.

thx schonmal im voraus

PS: Bin am verzweifeln ^^

c4 13.04.2003 17:58:41

Mit file() die ganze Textdatei in ein Array klatschen und dieses dann mit while() und strstr() oder explode() durchsuchen. Oder in_array() geht vielleicht auch.

schrempman 13.04.2003 18:51:59

Ja, mit der while schleife und explode habe ich es versucht.
Das Ergebniss war eine Endlosschleife mit "T_String" Fehlern...

gibt es keine andere Möglichkeit...bzw. in welcher Reihenfolge muss ich explode und while anwenden?

c4 13.04.2003 18:57:02

Zitat:

in welcher Reihenfolge muss ich explode und while anwenden?
Na diese Frage erübrigt sich doch, da Du die while-Schleife ja zum durchlaufen des Arrays missbrauchst.

Ungefähr so:
PHP-Code:

$user=file("user.txt");
$i=0; while ($i<count($user))
 {
  
$temp=explode("|"$user);
  if (
$temp[0]==$user && $temp[1]==$alter)
   { 
/* User vorhanden */ }
  else
   { 
/* User nicht vorhanden */ }
  
$i++;
 } 


schrempman 13.04.2003 19:54:55

thx
 
danke c4, musst ich nur noch das Problem suchen warum er mir bei $user array ausgibt ..

schrempman 14.04.2003 15:05:58

^^
 
Ich brauche leider nochmal eure Hilfe, ich bekomm es nicht hin.

Der Vorschlag wie c4 ihn gemacht hat funktioniert einwandfrei, bis auf das Problem, das ich für $user immer "Array" als Wert bekomm.

Der Pfad stimmt, die Datei gibt es, es sind Daten vorhanden ....

Wo liegt da das Problem?

schrempman 15.04.2003 08:13:08

...
 
kann es sein, das es eventuell an der PHP Version liegt?

Habe es wie hier versucht
http://www.selfphp.com/funktionsrefe...ionen/file.php
, allerdings bekomm ich keine untereinander gelistete Reihe sondern nebeneinander. Es wird alles in $array[0] reingepackt..

c4 15.04.2003 17:29:37

Zeig mal, wie Dein Skriptlein nun aussieht.

InCuBuS 15.04.2003 17:52:53

Ich moechte doch ma hierrauf verweisen !

http://www.blueshoes.org/en/developer/php_bench/

deine variante ist ca. 84000% langsamer als diese hier :

PHP-Code:


$file 
file("user.txt");
foreach(
$file as $handle) {
    
$check explode('|'$handle);
    if ((
$check[0] == $user) && ($check[1] == $alter)) {
        
/* User vorhanden */         
    
} else {
        
/* User nicht vorhanden */ 
    
}



c4 15.04.2003 18:00:28

Keine Ahnung, wo Du da diese (lächerliche) 84.000% herholst, aber glaub mir einfach: auf einer 'normalen' Website macht sich das nicht bemerkbar. Ebenfalls hab ich keine Ahnung, wie viele Tausende Besucher Du gleichzeitig online haben musst, damit der sich der Geschwindigkeitsvorteil überhaupt bemerkbar macht.

Btw: Traue keiner Statistik, die Du nicht selber gefälscht hast. Ich halte mich exzellent daran.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:55:02 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.