WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   php zeile in file editieren (http://www.wcm.at/forum/showthread.php?t=118372)

Seppo 11.12.2003 09:52

php zeile in file editieren
 
hi

nach stundenlangen suchen.. kann ich leider nix genaues dazu finden was mir weiterhilft.

mein problem is ich würde gerne in einer datei eine zeile editieren:

sieht circa so aus

Name //// Passwort //// email
Name1 //// passwort1 //// email 1
name2 //// passwort2 //// email 2


wie kann ich jetzt wenn sich der name1 einloggt mit passwort
seine daten editieren

also von der theorieh würd ich sagen ich les das ganze file ein such mir die zeile mit dem namen raus edier sein pw und sein mail im speicher und überschreib das ganze file dann mit dem neuen


was ich jetzt net check is wie find ich die zeile wenn ich alles eingelesen hab gibts da irgendeinen befehl? find_string oder irgendwie so ?

kann mir wer helfen ?

Joker 11.12.2003 11:55

Hallo,

warum liest Du die Datei nicht zeilenweise ein und vergleichst jede Zeile mit dem Benutzernamen? Zeilenweises einlesen sollte mit fgets() und einer Schleife klappen. Ich vermute mal, daß du irgendein Trennzeichen festgelegt hast, dort kannst Du dann mit split() trennen. Mit file() kann man auch komplette Dateien einlesen und zeilenweise in ein Array schreiben, das wäre wahrscheinlich die beste Lösung für Dich.

Seppo 11.12.2003 12:52

hi!

ja genau so mach ichs.. zeilenweise einlesen mit split variablen befüllen

und dann ?

dann hab ich den namen und pw in der variable.. wie sag ich dem jetzt aber er soll genau an der stelle editieren im txt file??

oder kanns sein das ich mich jetzt zu dumm anstelle und begriffstutzig bin? :)

Seppo 12.12.2003 09:07

keiner der mir helfen kann ? :(

käptn 12.12.2003 12:01

Dafür eine Datei zu verwenden (in diesem Format)... aber bitte...

PHP-Code:

$name 'Kunigunde';

$file '/path/to/file';
$tmpf tempnam('/path/to/tmp/dir''prefix');

if (!
$f fopen($file'r')) {
    die(
"Konnte $file nicht oeffnen...\n");
}
if (!
$t fopen($file'w')) {
    
fclose($f);
    die(
"Konnte $tmpf nicht oeffnen...\n");
}

while(
$line fgets($f)) {
    if (
preg_match("/^$name/"$line)) {
        
$line "$name //// $new_pass //// $new_email\n";
    }
    
fputs($t$line);
}
fclose($f);
fclose($t);
if (!
rename($tmpf$file)) {
    die(
"Konnte $tmpf nicht nach $file verschieben...\n");
}
echo 
"Fertig!\n"

~

Seppo 12.12.2003 12:10

äähm erst mal danke.. für die mühe..

ich hab in der zwischenzeit irgendwas zusammengebastelt.. was auch so aussieht als ob es funkt.. nur is meins ungefähr 5 mal so lang :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag