1. 現在位置:
  2. トップページ
  3. HP作成tips
  4. PHP-テキストカウンタ多重カウント抑制 PHP4
テキストカウンタ多重カウント抑制 PHP4
■ サンプル

1589

■ ソース説明

表示したいPHPファイルに直接または下記を入れる
下記はFONTで色とサイズを設定しています。
下記は表示したいPHPと同じ所に入れた場合です。

<FONT COLOR="#ff0000" SIZE="5"><?include("count.php");?></FONT>

書き込み用 空の count.dat(666) を用意して本体と同じ所に置いて下さい。
count.dat パーミッション(666)

■ ソース

count.php
<?php
$filename = "count.dat";
$id = $HTTP_SERVER_VARS["REMOTE_ADDR"];
if (!file_exists($filename)) {        
        print("ファイルがありません。<BR>\n");
        exit;
        }

$fp = fopen($filename,"r");        
        if ($fp == FALSE){
                print("ファイルポインタのオープンに失敗しました。<BR>\n");
                exit;
        }

        $buffer = fgets($fp,4096);        

fclose($fp);        

$lines_array = preg_split( "/\t/", rtrim( $buffer ));

$lastip = $lines_array[0];
$lastcount = $lines_array[1];

if($id != $lastip){        
        $count = $lastcount + 1;
        $lastlog = $id . "\t" . $count . "\n";        

        $fp1 = fopen($filename,"r+");        
                if ($fp1 == FALSE){
                        print("ファイルポインタのオープンに失敗しました。<BR>\n");
                        exit;
        }
        flock($fp1, LOCK_EX);        
        fputs($fp1,"$lastlog\n");        
        flock($fp1, LOCK_UN);        
        fclose($fp1);        
        if (!$fp1) {
                print("ファイルポインタのクローズに失敗しました。<BR>\n");
                exit;
        }
        print $count;
}
        else{
        print $lastcount;
        }
?>