Have you tried using a or a+ and just appending to the file? Then you don't need to read it first.
As for the overlap with bits of old posts remaining, I don't see any code that determines where one post leaves off and the next begins.
Thirdly, if you want to read in the whole file, then you've got three options:
Use file() and join() the resulting array elements together.
If the file is accessible on your local filesystem, use filesize() to find out just how big it really is.
Use the fgets() in a loop, and read the file in in pieces.
Mindlessly picking a big number in hopes that the file will never exceed it (and your system will never suffer the consequences of allocating an oversized buffer) is a bad design move.
For the date() problem. Well, date('r') works for me, date("r") does too, and PHP complains about an undefined constant (as it should) for date(r).