Daten in neue Zeile schreiben
Sven
- php
0 Philipp Hasenfratz0 Sven
0 Tom
Hi,
ich möchte mit folgendem Code alle per Formular gesendeten Daten in einen Datei schreiben:
foreach ($HTTP_POST_VARS as $k=>$elem)
{
$inhalt = "$k: $elem ";
$daten = "inhalt.txt";
$fp = fopen($daten,"a+"); flock($fp,2); fputs($fp,$inhalt);
flock($fp,3);
fclose($fp);
}
Nur werden alle daten in einer "wurscht" in die Datei geschrieben: name: Franz plz: 12345 ....
ich hätte das aber gerne jeweils in einer neuen Zeile:
name: Franz
plz: 12345
....
wie bekomme ich das hin? ich müsste doch irgendwie den DateiPointer in die nächste zeile bekommen?
Danke für die Hilfe,
Sven
Halihallo Sven
$fp = fopen($daten,"a+");
ein "a" würde reichen, es sei denn du möchtest die Datei schreiben _und_ lesen.
Nur werden alle daten in einer "wurscht" in die Datei geschrieben: name: Franz plz: 12345 ....
ich hätte das aber gerne jeweils in einer neuen Zeile:
name: Franz
plz: 12345
....
Na, dann häng eine newline "\n" an $inhalt an: $inhalt = "$k: $elem\n"
wie bekomme ich das hin? ich müsste doch irgendwie den DateiPointer in die nächste zeile bekommen?
Nein, denn bei append sind nachfolgende Zeilen noch gar nicht existent. Diese fügst _du_
ja erst an.
Viele Grüsse
Philipp
danke für die verdammt schnelle hilfe! schönes Wochenende noch,
gruß Sven
Hello,
$fp = fopen($daten,"a+");
flock($fp,2);
fputs($fp,$inhalt);
flock($fp,3);
fclose($fp);
}
Wenn Du flock auf diese Weise benutzt, hat es überhaupt keinen Nutzen.
flock() funktioniert als Empfehlung für das Programm, folglich muss man das Ergebnis der Operation auch abfragen.
$fp = fopen($daten,"a+");
if (flock($fp,2))
{
fputs($fp,$inhalt);
flock($fp,3);
}
else
{
fehlermeldung("Datei $daten ist im Moment gesperrt");
}
fclose($fp);
}