グラフィック版アクセスカウンタを作ってみましょう。
あなたは
人目のお客様です。
作り方は次のようにします。
あらかじめ0〜9までの数字を描き,ファイル名 0.jpg 〜 9.jpg
で保存しておきます(もちろんJPEGでなくてもGIFでもPNGでもかまいません)。
できるだけ小さく作るのがコツです。
このページの例は2001年の授業で即興で作ったものですので,いいかげんなデザインです。
カウントする部分はテキスト版と同じですが,最後に $c
の値を千の位 $c3,百の位 $c2,十の位 $c1,一の位 $c0
に分解しています。
% 10 は「10で割ったあまり」です。
<?php
$f = fopen("count.txt", "r+");
$c = fgets($f, 10);
$c = $c + 1;
fseek($f, 0);
fputs($f, $c);
fclose($f);
$c3 = ($c / 1000) % 10;
$c2 = ($c / 100) % 10;
$c1 = ($c / 10) % 10;
$c0 = $c % 10;
?>
表示の部分は次のようになります。
<p> あなたは <?php echo "<img src=\"$c3.jpg\" alt=\"$c3\">"; echo "<img src=\"$c2.jpg\" alt=\"$c2\">"; echo "<img src=\"$c1.jpg\" alt=\"$c1\">"; echo "<img src=\"$c0.jpg\" alt=\"$c0\">"; ?> 人目のお客様です。 </p>
【問】桁数を増やすにはどうすればいいでしょうか?
【問】頭のゼロを消すにはどうすればいいでしょうか?
echo "...";
の中でさらに "..."
を使う場合,内側の "..."
は \"...\"
にします。この \ は16進 0x5c
の文字(U+005C: REVERSE SOLIDUS)ですが,Windowsのxyzzyを使う際に,Unicode (UTF-8N)
で保存するところを間違えて STD Unicode (UTF-8N)
で保存するとUTF-8で 0xc2 0xa5
という2バイトの文字(U+00A5: YEN SIGN)になってしまい,エラーになります。
Last modified: 2012-04-18 15:50:06