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 などの出力コマンドが使われていないこと
をチェックすることによって、ほとんどの場合解決できました。
|