カウンタクラス
PHP ファイル
count_2.php


Move Imageに戻る

<?php
class Counter {
// メンバ変数にアクセス修飾子付与
  private $fp;
// コンストラクタ
  public function __construct
   ($filename)
  {
// カウント処理を実行
    $this->_filename = $filename;
    $fp =
     @fopen($this->_filename, 'r+')
     or die(
   "can't open datafile [$filename]"
     );
/*
 @fopen:失敗してもエラー表示なし
 die:()内を表示してPHPスクリプトを終了
 r+:読込、書出用にオープン、
 ファイルポインターを
 ファイルの先頭に置く
*/
    $this->_count = fgets($fp, 32);
//ファイルポインターから
//最大32バイトを取得
    if ($this->_count == '') {
      $this->_count = 0;
    }
    $this->_count += 1;

    rewind($fp);
//ファイルポインターの位置
//を先頭に戻す
    flock($fp, LOCK_EX);
//排他的ロック
    fputs($fp, $this->_count);
//オープンファイルに書出
    fclose($fp);
  } // function __construct END

  function view()
  {
    echo $this->_count;
  }
} // class Counter END
/*
 使い方:
 カウンタ1
  $CNT1 = new Counter('***1.txt');
  $CNT1->view(); 実際にカウンタを表示
 カウンタ2
  $CNT2 = new Counter('***2.txt');
  $CNT2->view(); 実際にカウンタを表示
*/
?>