Hallo zusammen,
ich bräuchte bitte eure Hilfe.
Ich habe ein PHP script erstellt mit dem ich als sozusagen Webinterface meine Funksteckdosen im Haus über ein Raspi steuere.
Ich würde gerne in einer .csv den aktuellen Status mitschreiben, derzeit sind zwei Dosen angeschlossen und ich würde gerne in zeile 1 den Status von Dose 1 und in Zeile 2 den Status von Dose 2 loggen.
Status ist immer 1 oder 0
Mein Problem ist ich scheitere leider am Schreiben in die Datei, hier mal mein Script, das funktioniert aber nicht da ich immer Neue Zeilen erstelle.
Es wird einfach nicht sauber nur der Wert geändert sonder auch eine neue Zeile eingefügt, und wenn ich das EOL weg lasse dann steht alles in der gleichen Zeile.
Kann mir jemand helfen wie ich das schreiben muss damit immer nur die Betroffene Zeile überschreiben wird?
Danke
ich danke euch!
ich bräuchte bitte eure Hilfe.
Ich habe ein PHP script erstellt mit dem ich als sozusagen Webinterface meine Funksteckdosen im Haus über ein Raspi steuere.
Ich würde gerne in einer .csv den aktuellen Status mitschreiben, derzeit sind zwei Dosen angeschlossen und ich würde gerne in zeile 1 den Status von Dose 1 und in Zeile 2 den Status von Dose 2 loggen.
Status ist immer 1 oder 0
Mein Problem ist ich scheitere leider am Schreiben in die Datei, hier mal mein Script, das funktioniert aber nicht da ich immer Neue Zeilen erstelle.
Es wird einfach nicht sauber nur der Wert geändert sonder auch eine neue Zeile eingefügt, und wenn ich das EOL weg lasse dann steht alles in der gleichen Zeile.

Kann mir jemand helfen wie ich das schreiben muss damit immer nur die Betroffene Zeile überschreiben wird?
Danke
PHP:
//Datei in der der Status steht
$statusfile = "status.csv";
//Neuer Status der geschieben werden soll
$statusneu = (int)$com;
//Zeile in der der alte Status steht,Devicenummer = Zeilennummer, Stauts von Dose 2 Steht in Zeile 2
$devicestatusline = (int)$device;
$lines = file($statusfile);
$lines[$devicestatusline-1] = $statusneu;
$datei = fopen($statusfile,'w') ;
foreach($lines as $value)
{
fwrite($datei, $value . PHP_EOL);
}
fclose($datei);
ich danke euch!
Zuletzt bearbeitet: