[PHP]テキストの最後の行と重複していない場合には追記する処理

定期的に何かをチェックして、更新されていた場合はテキストファイルに追記するという処理は、よくあることだと思います。テキストに記録した最後の行と比較して、変わっていたなら追記します。
この処理で、問題になるのは
テキストの最後の行をどうやって取り出すのか、でしょう。
PHPには、ファイルをオープンした後、ファイルポインタを最後の行にシークするという命令は見当たりませんでした。
なのでテキストを全部読んで最後の行を取り出すという処理になってしまいます。

処理としては、こんな感じでしょうか。EOFに達すると、fgets()はFALSEを返しますから値は$lastlineに保存しましす。
rtrim()で改行コードを取り除いています。

ファイルサイズが小さい場合等は、一気にドカーンと読み込んでしまうという方法もありますね。

ファイルの追記は簡単ですね。

Top