ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

PHPのアクセスカウンタ、つくってみた

2010-08-13 14:48:39 | PHP

 人にいわれて気づいた、
 かんたんなPHPのアクセスカウンタがないと・・・

 なんで作ってみた。

 こんなかんじ。
<?php

//**********************************************//
//	ここを書き換えると、好きなイメージに	//
//**********************************************//
$ipath = "img/";	//	イメージのパス、最後に/をつけてね
$itype = "gif";		//	gifとかjpgとか、拡張子を"."「なし」で
//**********************************************//
//	ここまで				//
//**********************************************//

	//	カウンタファイル名作成
	$fname = $_GET['fname'];
	if ( $fname == "" )
	{
		$fname = "counter";
	}
	$fname = $fname . ".dat";

	//	カウンタの数取得
	$inf = fopen ( $fname , "r");
	if ( $inf == false )
		$count = 0;
	else
	{
		$count = fgets($inf);
		fclose($inf);
	}

	//	カウントアップ(今見た分)
	$count ++;

	//	カウンタ書き出し
	$outf = fopen ( $fname , "w");
	fwrite($outf,$count);
	fclose($outf);

	//	表示
	//	数字のファイルが存在しないときは、
	//	文字で表示する
	$ret = chgImg($count,$ipath,"gif");
	if ($ret	==	"" )
		echo $count;
	else
		echo $ret;

//******************************************************//
//							//
//	カウンターをイメージファイルのタグに変換	//
//							//
//******************************************************//
function chgImg($count,$ipath,$itype)
{
	//	カウントを文字に置き換え
	$chkword = strval($count);
	$len = strlen($chkword);
	$ret = "";

	//	1文字ずつチェック
	for($pos = 0 ; $pos < $len ; $pos++)
	{
		$chk = substr($chkword,$pos,1);
		$chkfname = $ipath . $chk . "." . $itype;
			//	ファイルなければ、""を返す
		if ( file_exists($chkfname)	==	false)
		{
			return "";
		}
		else
		{
			//	数字のイメージファイルに変換
			$ret = $ret . '<IMG SRC="' . $chkfname . '">';
		}
	}

	return $ret;
}	

?>

< >の全角を、半角にして、htdocsのトップにテキトーな名前(拡張子.php)う
つけて保存、アクセスするとカウントする。




 その際、imgというフォルダを(htdocsの下に)つくり、そこに0.gif~9.gifを置くと、
イメージで表示される。

  イメージの置き場所を変えたい場合は、$ipathを、
  GIF以外の形式にしたい場合は、$itypeを

いじると変えられる。





 また、HTMLファイルから使いたい場合は、iframeで入れられる

 たとえば、このPHPがcount.phpだとすると、

<iframe src="count.php" height=40 width=100 frameborder=0 scrolling=no>
</iframe>

を使いたいところに入れる。






さらに、ページごとに切り分けたい場合、引数fnameを変えると切り分けられる。

  count.php?fname=count1

とすると、count1.datファイルにそのページへアクセスした人の数がはいり、

  count.php?fname=count2

とすると、count2.datファイルにそのページへアクセスした人の数がはいり、

なので、fnameを切り分けることによって、カウントできる




こんなかんじ


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

8月12日(木)のつぶやき

2010-08-13 00:38:39 | Twitter
10:05 from web
Eucalyptusをクライアントで操作するとなると、やっぱ、Hybridfoxがいいの?昨日、そう教わった http://code.google.com/p/hybridfox/
10:06 from web
でも、昨日操作したの、eclipseからのような気がしたんだけど(FireFoxは立ち上げなかったような。。)あれは、AWS Toolkit for Eclipseを改造したのかしら?
10:13 from web
それと、これか!昨日、あの人が持ってたのは・・・「G-CLOUD Magazine」 http://gihyo.jp/book/2010/978-4-7741-4342-2
by xmldtp on Twitter

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする