Info

2017年11月24日 (金)
6人が見てるかも
Menu
Top
PHP+MySQL
Downloads
BBS
Links
PHP総合
データベース総合
PHPアクセラレータ
PHP関連サイト
スクリプト検索
その他
History
2006
2005
2004
2003
2002
2001
レンタルサーバ比較
RSS Viewer (実験)
E-Mail me E-Mail icon
PHP WebRing
@PHP.ring
各種書籍

PHPプロ!マガジン 2007年夏号表紙
PHPプロ! マガジン
2007年夏号 Vol.4


PHP関連書籍一覧
DB関連書籍一覧
3D関連・その他書籍


PostgreSQL構築・運用ガイド
PostgreSQL構築・運用ガイド


PHP+MySQL - imgタグ変換

imgタグ変換

 ここで、ちょっとしたユーティリティを1つ紹介します。値を img タグに変換する関数です。

 たとえばアクセスカウンターなんかは、値をそのままテキストで表示するよりも数字の絵を並べて表示したほうが、自分の好きなデザインで表示されるのでちょっぴりうれしいはずです。これはそんな時に使います。

 この関数は、123 とかの値を <img src="1.gif"><img src="2.gif"><img src="3.gif"> のように img タグに変換するための関数です。SCDB で得られたカウンターの値とかは、そのままだと単なるテキストでしか表示できません。見た目の部分は、せいぜいフォントの種類とか色とかを変えたりできるくらいです。でもこの関数を使って img タグに変換すれば、あとは絵を用意するだけで自分の好きなデザインで数字を表示することができます。

 この関数の名前は da_make_img_tag() です。名前が気に入らない場合は、自分の好きな名前に変えて使ってもいいでしょう。で、スクリプトは以下の通り。

//----------------------------------------------------------------------
// img タグを生成する
//
// string da_make_img_tag( int $num, int $ncol, string $srcfmt,
//     string [$altfmt], int [$h], int [$w] )
//
// 引き数  $num     値
//         $ncol    桁数
//         $srcfmt  ファイル名生成用書式文字列
//         $altfmt  代替文字列生成用書式文字列
//         $h       画像の高さ
//         $w       画像の幅
//
// 戻り値  img タグの文字列
//----------------------------------------------------------------------
  1. function da_make_img_tag( $num, $ncol, $srcfmt, $altfmt=NULL, $h=0, $w=0 )
  2. {
  3. $tag = "";
  4. $numstr = sprintf( "%0${ncol}d", $num );
  5. for( $n=0; $n<strlen($numstr); $n++ )
  6. {
  7. $s = sprintf( $srcfmt, $numstr{$n} );
  8. $tag .= "<img src=\"$s\"";
  9. if( $w > 0 )
  10. $tag .= " width=\"$w\"";
  11. if( $h > 0 )
  12. $tag .= " height=\"$h\"";
  13. if( !is_null( $altfmt ) )
  14. {
  15. $a = sprintf( $altfmt, $numstr{$n} );
  16. $tag .= " alt=\"$a\"";
  17. }
  18. $tag .= ">";
  19. }
  20. return $tag;
  21. }

では、引き数について説明します。

$num は、すばり値です。456 とか 7890 とかの値を指定します。

$ncol は、何桁で表示するかの桁数を指定します。たとえば、値が 5432 で桁数を6とすると、'005432' になります。ですが、同じ値で桁数を1としても '2' とはなりません。桁数が足りない場合は、必要な桁数で表示されます。つまり 5432 を桁数1とした場合は、'5432' になります。逆に言えば、桁数を1にしておけば常に必要最小限な桁数で表示されることになります。

$srcfmt は、各桁の値を src="" で指定する画像のファイル名に変換するための書式文字列を指定します。書式文字列に指定できる書式は、PHPマニュアルの ここ を見てください。たとえばこれに "img/num_%d.gif" と指定した場合、生成されるファイル名は "img/num_X.gif" となります。(X は 0〜9)

$altfmt は、alt="" で指定したい文字列の書式文字列を指定します。省略、または NULL を指定した場合、alt="" は img タグに挿入されません。

$h は、height="" で指定したい画像の高さを指定します。省略、または 0以下を指定した場合は、height="" は img タグに挿入されません。

$w は、width="" で指定したい画像の幅を指定します。省略、または 0以下を指定した場合は、width="" は img タグに挿入されません。

 スクリプトの内容は、4 行目で必要な桁数の文字列を生成して、6〜24 行目で一桁ずつ分解して img タグを生成しています。

 スクリプトは上に書いてあるのが全てなので、コピー&ペーストでエディタ等に貼り付けて使ってください。

広告

ServerQueen
月々525円〜
RSS Feeds
RSS News Feed 全ニュース
RSS News Feed DA実験室関連
RSS News Feed PHP/DB関連
[Valid RSS]
RSS feed meter for http://www.darkangel.jp/

check out my neighbors in meatspace

RDF Resource Description Framework Developer Icon