Ein Perl-Skript (das ich nicht kontrolliere) fügt in regelmäßigen Abständen Zeilen an das Ende einer Textdatei an.
Mein PHP-Skript (das als Cron-Job ausgeführt wird) muss die Zeilen aus dieser Datei lesen, sie verarbeiten und dann aus der Datei entfernen. Die einzige Möglichkeit, mit PHP eine Zeile aus einer Datei zu entfernen, besteht darin, die Datei in eine Variable einzulesen, die eine Zeile zu entfernen, die Datei abzuschneiden und sie dann neu zu schreiben.
Aber was passiert, wenn:
- PHP liest die Datei
- Das Perl-Skript fügt eine neue Zeile an.
- Das PHP-Skript schreibt den geänderten Puffer zurück in die Datei.
In diesem Fall würde die neue Zeile verloren gehen, da sie überschrieben würde, wenn das PHP-Skript die Datei beendet und aktualisiert.
Gibt es eine Möglichkeit, eine Datei mit PHP so zu sperren, dass sie von Perl respektiert wird? Es sieht so aus, als ob die Funktion flock() PHP-spezifisch ist.