人にいわれて気づいた、
かんたんな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を切り分けることによって、カウントできる
こんなかんじ