グラフィック版アクセスカウンタを作ってみましょう。
あなたは 人目のお客様です。
作り方は次のようにします。
あらかじめ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