PHPで、テーブル(表)をimagecreate()で動的に書こうとし
PHPで、テーブル(表)をimagecreate()で動的に書こうとしています。
PHP初心者です。
imagerectangle(),imagettftext()、fopen()辺りを組み合わせれば良いのだとは思いますが…
各行と列の幅/高さを指定してボーダー(罫線)を引くところまではできて、その後の「各セルに文字を書く」ところでつまずいています。
別ファイルにカンマ区切りで記述しておいた文字列を、fgetcsv()で呼び出せばいいのかなと考えていますが、fgetcsv()の使い方がよくわからず、うまく書けません。
例示をいただければと想います。
現在は、以下のような感じです。
<?php
header( "content-type: image/png" );
$image = imagecreate( 228,480 );
//初期化
$bg = imagecolorallocate( $image,0,0,0 );
$border_color = imagecolorallocate( $image,128,0,0 );
$white = imagecolorallocate( $image,255,255,255 );
$font_family = "msgothic.ttc"; //暫定的に。
$wid = 0; //セルの幅
$hgt = 20; //セルの高さ
$x = 0; //描画開始位置の横座標。後のfor文の中で値が代入される
$y = 0; //描画開始位置の縦座標。後のfor文の中で値が代入される
$font_size = 8;
$angle = 0;
//ここから表の描画
for( $c = 1; $c <= 13; $c++ ) { //cは「何列目か」
if( $c == 1) {
$wid = 10;
} elseif( $c % 2 == 0 ) {
$wid = 5;
} else {
$wid = 30;
}
for( $r = 1; $r <= 13; $r++ ) { //rは「何行目か」
$y = $hgt * ($r-1);
if( $c == 1) { //1列目ならすべて塗りつぶし
imagefilledrectangle( $image, $x , $y , $x + $wid , $hgt , $border_color );
} elseif( $r == 1 && $c % 2 !=0) { //1行目なら奇数列目のセルを塗りつぶし
imagefilledrectangle( $image, $x , $y , $x + $wid , $hgt , $border_color );
} else {
imagerectangle ( $image, $x , $y , $x + $wid , $hgt , $border_color );
}
}
$x = $x + $wid; //描画開始位置の変更
}
imagepng($image);
imagedestroy($image);
?>