私のパソコン雑記帖

PHPカウンターとGD関数

カテゴリー: PHP
06Jul2009⇒2Apr2010更新

サンプルコード

このサンプルコードはGD関数が使える環境で有効です。なおカウンター値($count)が定まるまでの部分は省略しています。

<?php
$count=12345;
//********************************************
$img_dir="[path]/co_img"; //カウンタ用画像を格納しているディレクトリ。
//ここには数字画像(11x13) 0.png ~ 9.png が収納されているものとします。
$width=11;//画像の幅
$height=13 ;//画像の高さ
$keta=7;//表示桁数
//********************************************
$length=strlen($count);
for($i=0; $i<$length; $i++){ //イメージ出力用配列作成
$img_ctr[$i]=substr($count,$i,1)."."."png";
}
if($keta<$length){
$temp=$length-$keta; for($i=0; $i<$temp; $i++) array_shift($img_ctr);
} elseif($keta>$length){
$temp=$keta-$length;
for($i=0; $i<$temp; $i++) array_unshift($img_ctr, "0"."."."png");
}
$img=imagecreate($keta*$width,$height); //新規imageの作成
for($i=0; $i<$keta; $i++){
$temp=imagecreatefrompng("$img_dir/$img_ctr[$i]") ;
imagecopy($img, $temp, $i*$width, 0, 0, 0, $width, $height) ;
$temp="";
}
header("Content-Type: image/png") ;
imagepng($img) ;
?>

このサンプルコードを例えば counter.php というファイルに書き込んで、

<img src="[path]/counter.php" alt="" />

とすることでカウンター値が表示されます。 実際例⇒


スクリーンに出力出来ないという問題

スクリーンに出力出来ない、という問題に遭遇することがあります。私の場合、

1.<?php の前に空行がないこと 他のhtmlコードが入っていないこと
2.print echo などの出力コマンドが使われていないこと

をチェックすることによって、ほとんどの場合解決できました。



コメント