10.サンプルで学習してみよう_その2

ここでは、「9.サンプルで学習しよう_その1」で作成したCGIにデータファイルの自動削除機能とワードチェックを機能をつけてみましょう。


1.データファイルの自動削除

前項までの状態ではデータファイルがどんどん大きくなってしまいます。
そこで、一定件数になったら古い記事から削除する機能を追加してみます。
本機能は、データファイルへの書き込み処理直前に実行される機能とします。流れとしては・・・・
(1)データ件数を調べる
(2)データファイルへの書き込みフォーマットを整える
(3)古いデータの削除準備をする
(4)データファイルへの書き込み順(古い記事から)を整える
(5)指定件数分をデータファイルへ書き出す

2.ロジックの追加

「9.サンプルで学習しよう_その1」で作成したCGIのソースにあるデータ書き込みルーチンに追加してみます。
元のソース
ロジック追加ソース
初期設定の部分にファイル内データの最大件数を書いておきます。・・・・・・・・・ $data_max = 10;
(100とか200とかにしたいけど、テストとか大変なので 10 にしておきました。)
このソースのミソは、新たに最大件数を超える投稿があった都度1件づつ削除するのではなく、設定した最大値の一定数(例えば1.4倍)を超えた時に設定数-1までの新着順+今投稿した分をデータファイルに保存し、それ以外は削除するというものです。
これによって、削除時の効率アップを図っています。

例えば・・・・

最大値を10、定数を1.4にした場合「14件」の投稿までは通常どおり登録だけの処理ですが15件になった時は、新着9件+投稿分をデータファイルに登録します。
そして、他の分は削除します。
メモ
本当はもっとスマートに書けるのでしょうが、「9.サンプルで学習しよう_その1」をもとに機能追加してしまったことと、配列の戻り値を処理する方法がわからなかったのでとりあえずこのままにしました。勉強足りないなぁー

ここクリックで実行できます。

ソースはここクリックで確認できます。


戻る

サイトトップへ