ホーム
メインメニュー

FPEプラグインをカウンタとして使う

PHPで作成した単純なカウンタプログラムとFPEプラグイン連動させました。
あまり用途は無いですが大きいカウンタも簡単です。

このサンプルはFPEプラグインのみを使ったものですが、FPEと組み合わせることで動くカウンタも作成できます。
動くカウンタは、後日アップします。

同一IPをカウントしない機能もつけたのですが、現在無効にしています。
リロードするとすぐにカウントアップします。

連携の仕組み

動作環境

PHP Version 4.3.8で動作確認しています。

必要なファイル

1.mistelop_sharp.swf(FPEプラグイン)
2.xxxx.php(後述のソースをペーストしてEUCで保存して下さい)
3.counter.dat(空のファイルを作成しパーミッションを書き込み可能として下さい「666」等)

3つのファイルを同一ディレクトリに設置してxxx.phpにアクセスして下さい。

FPEプラグインはELZで配布されているFPEを入手して下さい。

PHP Source Code
<?php
//同一IPチェック 0:IPチェック無し 1:IPチェック有り
define("DUP_IP_FLG",0);

//再アクセス無効時間(秒指定)
define("OMMIT_TIME",60 * 60 * 1);   // 60 * 1 = 1分

define("COUNTER_FILE","counter.dat");

function
get_count() {
    
//カウンタファイルオープン
    
if ($fp = @fopen( COUNTER_FILE, "r+" )) {
        
//ロック可能か?
        
if (flock( $fp, LOCK_EX )) {

            
//カウントデータ取得
            
if (!$count = fgets($fp)) $count = "0,0,0";

            
//カウントデータ展開
            
list($cnt,$ip_addr,$acc_time)=explode(",", $count);

            
//IPアドレス取得
            
$new_ip_addr = $_SERVER['REMOTE_ADDR'];
            
//カウントアップするか?
            
if (!DUP_IP_FLG || $ip_addr != $new_ip_addr || (date("U") - $acc_time > OMMIT_TIME )) {
                
$cnt++;
                
$count = implode(",", array($cnt,$new_ip_addr,date("U")));
                
rewind( $fp );
                
ftruncate($fp,fwrite( $fp, $count ));
            }
            
fclose( $fp );
        } else {
            
//ロックエラー
            
return("Busy");
        }
    } else {
        
//オープンエラー
        
return("Open Error");
    }
    return(
sprintf("%07d",$cnt));
}

//カウント取得
//$count = get_count();

//フォントサイズを50にする
$count = get_count() ."&amp;font_size=50";

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML LANG="ja">
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=EUC-JP">
<TITLE>カウンタ</TITLE>
</HEAD>

<BODY>

<h1>FPEテロップ プラグイン カウンタ</h1>

<DIV>
<!-- ここからFlash組込定義 -->
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
width="500" height="70">
<param name="movie" value="mistelop_sharp.swf">
<param name="quality" value="high">
<param name="bgcolor" value="#990000">
<param name=scale value="noscale">
<param name=salign value="TL">
<param name="flashvars" value="telop=<?php echo $count; ?>">
<embed src="mistelop_sharp.swf"
width="500" height="70" quality="high" bgcolor="#990000" scale="noscale" salign="TL"
flashvars="telop=<?php echo $count; ?>"
pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>
</object>
<!-- ここまでFlash組込定義 -->
</DIV>

</BODY>
</HTML>



Yaibeen