1箱からオーダーメイドのアースダンボール
・カウンタ
−シンプルカウンタ−
■ 概要
シンプルなテキストカウンタです。
特に機能はなし。 ロックはflockを使ってます。
■ サンプル
/* シンプルカウンタ 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; //カウンタ表示
?>
人目のアクセスです
■ ソース
<?/* シンプルカウンタ 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; //カウンタ表示
?>
■ ダウンロード
count.php (
2006/05/29 up!)
■ 設置方法
1. 空のファイル「count.txt」を作成します。 本体といっしょにアップロードします。
2. count.txtのパーミッション(実行権限)を606にします。
3. カウンタを使いたい場所に<?include("count.php");?>を挿入します。
もしくはソースをそのまま挿入
初期値を入れたい場合は、count.txtにその数値を入れてアップロードして下さい。
−画像カウンタ−
■ 概要
画像が使えるカウンタです。よくあるやつ
カウンタ桁数が指定できます
IMGタグを出力する方式です。カウンタ画像は用意して下さい
■ サンプル
■ ソース
<? //------------設定---------------
// カウンタ画像のあるディレクトリ
$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]>";
} ?>
■ ダウンロード
gcount.php (
2006/05/29 up!)
■ 設置方法
1. 空のファイル「count.txt」を作成します
2. 本体といっしょにアップロードします
3. count.txtのパーミッション(実行権限)を606にします
4. カウンタを使いたい場所に<?include("gcount.php");?>を挿入します。もしくはソースをそのまま挿入
−昨日今日カウンタ−
■ 概要
昨日、今日、合計を表示するカウンタです。これもよくあるやつ
カウンタ桁数がそれぞれ指定できます
テキスト、画像、両方使えます
同一IPからの連続アクセスはカウントしない機能付
画像はIMGタグを出力する方式です。カウンタ画像は用意して下さい
■ サンプル
/************************************
* 昨日と今日のカウンタ by ToR
* http://php.s3.to
* 2000/05/08
* 2000/05/29 バグ修正、F2s対策
************************************
* 昨日、今日、合計のカウンタを、IMGタグで
* 画像もしくはテキストにて出力します。
*
* 同一IPからの連続アクセスはカウントしない機能付
*
* +準備
* 合計用の空ファイル(all.dat)を作成し、
* パーミッションを666に変更します。
*
* +使い方
* .php等にした、PHPが動くファイル内で、
* まず include ("dcount.php"); ?>を挿入します。
* そしてカウンタを置きたい場所に、次のように入れます
*
* きょうは人目 昨日は人
* いままでに人も来たよ。
*
* 注:カウンタを挿入する前に必ず
* include("dcount.php"); ?>
* コレを入れておいてください。
*
*/
//------------設定----------
//テキストカウンタなら0 画像カウンタなら1
$mode = 0;
// 昨日カウント用GIF画像のディレクトリ
$yes_path = './1/';
// 本日カウント用GIF画像のディレクトリ
$day_path = './1/';
// 総カウント用GIF画像のディレクトリ
$all_path = './1/';
// カウンタ記録ファイル
$log = './all.dat';
// 昨日カウント数の桁数
$fig1 = 3;
// 本日カウント数の桁数
$fig2 = 3;
// 合計カウント数の桁数
$fig3 = 4;
// 連続IPはカウントしない(yes=1 no=0)
$ipcheck = 1;
//---------設定ここまで------
function outhtml($f_cnt, $c_path){//カウント数とパスを与えて、IMGタグを返す
$size = getimagesize($c_path."0.gif"); //0.gifからwidthとheight取得
for ($i=0; $i";
endfor;
return $i_tag;
}
$now_date = gmdate("Ymd", time()+9*3600); // 今日の日付
$yes_date = gmdate("Ymd", time()-15*3600); // -24h
$dat = file($log); // ファイルを配列に
list($key, $yes, $tod, $all, $addr)=explode("|", $dat[0]);//データを分解
$ip = getenv('REMOTE_ADDR');
if(($ipcheck && $ip != "$addr") || $ipcheck==0){//直前IPが違うならカウントアップ
if($key == $now_date){//キーが今日なら今日をアップ
$tod++;
}else{
$yes = ($key == $yes_date) ? $tod : 0;//キーが昨日なら昨日に今日カウント格納それ以外は0
$tod = 1;
}
$all++;//合計をカウントアップ
$new = implode("|", array($now_date,$yes,$tod,$all,$ip));//データ連結
$fp = fopen($log, "w");//ファイルに保存
flock($fp,2);
fputs($fp, $new);
fclose($fp);
}
//カウント整形(空いた桁を0で埋める)
$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);
}
/*use: include("dcount.php");echo "昨日:$yesterday 今日:$today 合計:$total";?>*/
?> 今日:
昨日:
合計:
■ ソース
<?
//ログ形式は 今日の日付け|昨日のカウント|今日のカウント|合計カウント|直前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);
}
?>
■ ダウンロード
dcount.php (
2003/06/27 up!)
■ 設置方法
1. 空のファイル「all.dat」を作成します
2. 本体といっしょにアップロードします
3. all.datのパーミッション(実行権限)を606にします
4. そのディレクトリのパーミッションを717にします。
5. まず、カウンタを使いたい場所の先頭に<?include("dcount.php");?>を挿入します
■ テキストの場合mode=0 画像の場合mode=1
昨日:<?echo $yesterday;?> 今日:<?echo $today;?> 合計;<?echo $total;?>
−ナンカイメカウンタ−
■ 概要
クッキーを使った訪問回数を数えるシンプルなものです。
そのサイトを訪問した回数をカウントします。他の人には見えません。
カウンタは2週間たつとリセットされます。
■ サンプル
あなたは
回目の訪問ですね?
■ ソース
<?
// クッキーが送信されているかどうかを判別する
if (isset($_COOKIE['count'])) {
$count = $_COOKIE['count'];
} else {
$count = 0;
}
$count++; //カウントアップ //クッキーのセット(2週間有効)
setcookie("count","$count",time()+14*24*3600);
?> <html><body>あなたは<?echo $count;?>回目の訪問ですね?</body></html>
■ ダウンロード
nankai.php (
2003/01/05 up!)
■ 設置方法、注意
1. クッキーはすべての出力より前でセットする必要があるため、次のように挿入します。
<?php
if (isset($_COOKIE['count'])) {
$count = $_COOKIE['count'];
} else {
$count = 0;
}
$count++;
setcookie("count","$count",time()+14*24*3600);
?>
<html><head>・・・・
<body>・・・・
あなたは<?echo $count;?>回目の訪問ですね?
もしくは
あなたは<?echo $_COOKIE["count"];?>回目の訪問ですね?
LastModified June 05 2018 07:07:25
|