PHPスクリプト
一覧||カウンタ||掲示板||チャット||データ||ネットツール||小物||DB

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;		//カウンタ表示
?>

■ ダウンロード
 count.php ( 2006/05/29 up!)

■ 設置方法
1. 空のファイル「count.txt」を作成します。 本体といっしょにアップロードします。
2. count.txtのパーミッション(実行権限)を606にします。
3. カウンタを使いたい場所に<?include("count.php");?>を挿入します。
  もしくはソースをそのまま挿入
初期値を入れたい場合は、count.txtにその数値を入れてアップロードして下さい。

−画像カウンタ−

■ 概要
画像が使えるカウンタです。よくあるやつ
カウンタ桁数が指定できます
IMGタグを出力する方式です。カウンタ画像は用意して下さい

■ サンプル
1366687

■ ソース

<?  //------------設定---------------
// カウンタ画像のあるディレクトリ
$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タグを出力する方式です。カウンタ画像は用意して下さい

■ サンプル
を挿入します。 * そしてカウンタを置きたい場所に、次のように入れます * * きょうは人目 昨日は人 *   いままでに人も来たよ。 * * 注:カウンタを挿入する前に必ず * * コレを入れておいてください。 * */ //------------設定---------- //テキストカウンタなら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:*/ ?> 今日: 昨日: 合計:

■ ソース

<? 
//ログ形式は 今日の日付け|昨日のカウント|今日のカウント|合計カウント|直前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