Hello,
Das LOCK_UN _musst_ Du dir schenken. Durch fclose() wird das File auch entsperrt, und zwar in einem abgeschlossenen Auftrag (atomarisiert).
siehe Changelog: http://de.php.net/manual/de/function.flock.php
seit php 5.3.2 muss wieder manuell entsperrt vor fclose()
Das wäre ja ein fataler Konzeptfehler von PHP.
Das kann und will ich erstmal gar nicht glauben. Wer denkt sich denn so einen Unsinn aus?
Sonst müsstest Du der Ordnung halber vor dem Entsperren noch ein Flush() auslösen, damit ggf. benutzte Buffer vor dem Entsperren noch in Richtung Datei geleert werden.
gut, also ist flush() bereits teil von flcose().
Das hat das Betriebssystem sicherzustellen, ganauso, wie das entsperren.
Haben die von PHP also einen Teil der jeweiligen Betriebssysteme ausgetauscht?
Wenn das stimmt, was Du schreibst, werde ich PHP nicht mehr benutzten und auch jedem Anderen davon abraten!
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg