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);
?>
お礼
画像ではなく文言としての記述が聞きたいので質問させていただきました。 PHPが分かる方には似たような質問も知れませんが。