PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe! File Search and Replace Save


Neuling
12.05.2003, 00:53:34
Hi,

ich bin absolut neu in PHP, brauche deshalb auch unbedingt Hilfe :-(

Folgendes:

Ich habe eine Datei, die so unterteilt ist (mit Doppelpunkt zwichen jeder neuen Variablen):

Variable1:Variable2:Variable3:Variable4:
Variable1:Variable2:Variable3:Variable4:
Variable1:Variable2:Variable3:Variable4:
Variable1:Variable2:Variable3:Variable4:
Variable1:Variable2:Variable3:Variable4:

In Variable 1 steht z.B. immer ein anderer Wert. Nun möchte ich bei Aufruf der PHP-Seite nach der Variable1 suchen und die Werte von Variable2,Variable3 und Variable4 durch einen anderen Wert genau in dieser Zeiel (dort wo der Übergabewert Variable1 gefunden wurde) ersetzen, falls die Übergabe-Variable1 in der Datei gefunden wurde und die Datei dann natürlich wieder speichern!

Zusatzfrage: Wird im PHP alles hintereinander getätigt oder muss ich die Datei irgendwie sperren, damit nicht User1 und User2 gleichzeitig drauf zugreifen und letztendlich, wenn die Datei wieder gespeichert wird nur ein einziger Wert geändert wurde?

Ich bedanke mich schon einmal im Vorraus!

Gruß Martin

c4
12.05.2003, 06:53:54
Tja, einfach die Datei mittels file() (http://www.php.net/manual/en/function..php) einlesen, in einer Schleife (http://www.php.net/manual/en/control-structures.while.php) durchgehen, Zeile für Zeile in ihre Bestandteile ausflösen (http://www.php.net/manual/en/function.explode.php), überprüfen, ob das erste Feld (Index 0) den gesuchten Wert hat und dann - wenn gefunden - die anderen 3 Felder der Zeile anpassen.
Die Felder dann wieder zu einer Zeile machen (http://www.php.net/manual/en/function.join.php) und zurück ins Array schreiben.
Speichern geht dann mit fwrite (http://www.php.net/manual/en/function.fwrite.php).

Klarofix?


Zusatzantwort: Rein theoretisch ist es möglich, dass 2 Schreibzugriffe auf eine Datei zur selben Zeit stattfinden wollen. Ich glaube, selbst dann ist PHP oder der Server schlau genug das zu verhindern und erst nacheinander ablaufen zu lassen. Die Wahrscheinlichkeit, dass sowas aber mal eintritt ist aber praktisch Null.