| PHPスクリプト | |
| |一覧||カウンタ||掲示板||チャット||データ||ネットツール||小物||DB| | |
・カウンタ−シンプルカウンタ−■ 概要
■ サンプル ■ ソース <?/* シンプルカウンタ by ToR http://php.s3.to 2000/10/18 */
$fp = @fopen("count.txt","r+") or die("ファイルが開けません");
flock($fp, LOCK_EX);
$count = fgets($fp, 64); //64バイトorEOFまで取得、カウントアップ
$count++;
rewind($fp); //ポインタを先頭に、ロックして書き込み
fputs($fp, $count);
fclose($fp); //ファイルを閉じる
echo $count; //カウンタ表示
?>
■ ダウンロード ■ 設置方法 −画像カウンタ−■ 概要 ■ サンプル ■ ソース
<? //------------設定---------------
// カウンタ画像のあるディレクトリ
$path = './gif/';
// カウンタを記録するファイル
$log = 'count.txt';
// カウンタの桁数
$fig = 5;
//------------ここまで----------
$fp = @fopen($log, "r+") or die($log."が開けません");
flock($fp, LOCK_EX); //書き込みに対しロック
$count = fgets($fp, 64); //最大64バイトまで読み込む
$count++; //カウントアップ
rewind($fp); //ファイルポインタを先頭に移す
fputs($fp, $count); //ファイルに書き込む
fclose($fp); //ファイルをクローズ
//桁数のフォーマット
$cnt = sprintf("%0".$fig."d", $count);
//画像のサイズオプションを0.gifで取得
$size = getimagesize($path."0.gif");
//IMGタグを出力
for ($i=0; $i<strlen($cnt); $i++){ //桁数分だけループ
$n = substr($cnt, $i, 1); //左から一桁ずつ取得
echo "<IMG SRC=\"$path$n.gif\" alt=$n $size[3]>";
}
■ ダウンロード ■ 設置方法 −昨日今日カウンタ−■ 概要 ■ サンプル ■ ソース <?
//ログ形式は 今日の日付け|昨日のカウント|今日のカウント|合計カウント|直前IP
//------------設定----------
//テキストカウンタなら0 画像カウンタなら1
$mode = 1;
// 総カウント用GIF画像のディレクトリ
$all_path = './gif1/';
// 本日カウント用GIF画像のディレクトリ
$day_path = './gif1/';
// 昨日カウント用GIF画像のディレクトリ
$yes_path = './gif1/';
// カウンタ記録ファイル
$log = './all.dat';
// 昨日カウント数の桁数
$fig1 = 3;
// 本日カウント数の桁数
$fig2 = 3;
// 合計カウント数の桁数
$fig3 = 5;
// 連続IPはカウントしない(yes=1 no=0)
$ipcheck = 1;
//---------設定ここまで------
//カウント数とパスを与えて、IMGタグを返す
function outhtml($f_cnt, $c_path){
$size = getimagesize($c_path."0.gif"); //0.gifからwidthとheight取得
for ($i=0; $i<strlen($f_cnt); $i++): //桁数分だけループ
$n = substr($f_cnt, $i, 1); //左から一桁ずつ取得
$i_tag.="<IMG SRC=\"$c_path$n.gif\" alt=$n $size[3]>";
endfor;
return $i_tag;
}
$now_date = gmdate("Ymd", time()+9*3600); // 今日の日付
$yes_date = gmdate("Ymd", time()-15*3600); // 昨日の日付
$dat = file($log); //配列にログ読み込む
$ip = $_SERVER['REMOTE_ADDR']; //IPアドレス
//変数を展開(比較用日付、昨日、今日、総合、直前IP)
list($key, $yes, $tod, $all, $addr)=explode("|", $dat[0]);
if(($ipcheck && $ip != "$addr") || $ipcheck==0){
if($key == $now_date){//ログの日付が今日ならカウントアップ
$tod++;
}else{//日付がかわったら昨日に今日、今日に1を入れる。昨日じゃないなら昨日に0
$yes = ($key == $yes_date) ? $tod : 0;
$tod = 1;
}
$all++;//合計カウントアップ
//更新
$new = implode("|", array($now_date,$yes,$tod,$all,$ip));
$fp = fopen($log, "w");
flock($fp, LOCK_EX);
fputs($fp, $new);
fclose($fp);
}
//桁数整形
$yesterday = sprintf("%0".$fig1."d", $yes);
$today = sprintf("%0".$fig2."d", $tod);
$total = sprintf("%0".$fig3."d", $all);
if($mode){
//タグを取得(画像出力)
$yesterday = outhtml($yesterday, $yes_path);
$today = outhtml($today, $day_path);
$total = outhtml($total, $all_path);
}
?>
■ ダウンロード ■ 設置方法 −ナンカイメカウンタ−■ 概要
■ サンプル ■ ソース <?
// クッキーが送信されているかどうかを判別する
if (isset($_COOKIE['count'])) {
$count = $_COOKIE['count'];
} else {
$count = 0;
}
$count++; //カウントアップ
■ ダウンロード ■ 設置方法、注意
LastModified May 29 2006 15:49:45
|
| |HOME||チュウトリアル||使用上の注意||スクリプト||無料鯖情報||BBS||リンク| Copyright(C) 1999-2001 ToR all rights reserved. |