クラスと PHP
テーブル本体を作成しましょう:
$Tbody->TDOut("クライスラー");
$Tbody->TDOut("ロッド");
$Tbody->TDOut("コートランド");
$Tbody->TDOut("ニューヨーク");
$Tbody->TDOut("USA");
?>
しかし、これはまだ少し長くなります。もう少し手順を節約できないでしょうか?これを試してみてはいかがでしょうか:
function TROut($message) { /*魚に関するコメントは禁止です。 ;) */
PRINT "
n";
$cells=explode("|",$message);
$iterations=count($cells);
$i=0;
while ($i list($message,$span)=explode(":",$cells[$i]);
if (strlen($message) if ($span){
$this->TDOut ($message,$span);
}else{
$this->TDOut ($message);
}
$i++;
}
PRINT "
n";
}
?>
うわー!それはもう少し複雑です。細かく見てみましょう:
行 3 はメッセージをパイプ上に分割し、その部分を配列 $cells に格納します。 4行目は項目数(セル数)を$iterationsに格納しています。 6 行目は、これらのセル項目を処理するループを開始します。 7 行目では、セル データをコロンで分割し、変数 $message と $span に格納します。 8 行目では、メッセージが含まれているかどうかを確認します。そうでない場合は、メッセージをデフォルトに設定します。 9 行目は、スパンがリストされているかどうかを確認します (つまり、セル データの背後に何かがあるコロンがあります。そうである場合は、10 行目でメッセージとそのスパンがまたがるセルの数を指定して TDOut を呼び出します。そうでない場合は、12 行目で TDOut を呼び出します。メッセージのみ (TDOut は $colspan をデフォルトの 1 に設定します) 最後に、行を閉じます
これは、行全体を出力するために必要なすべての情報を含む単一の文字列を TROut に渡すことができることを意味します。文字列が "celldata[:colspan]|celldata[:colspan]|......celldata[:colspan]" の形式である限り、以前に行ったすべての作業の代わりに、ヘッダーが必要になります。テーブルの本体は次のように呼び出すことができます:
$Theader->TROut("Name:2|Address:3"); |Last|City|State/Province| Country");
$Tbody->TROut("Rod|Kreisler|Cortlandt|New York|USA");
?>
すごい。それはしかし、データが変数内にある場合はどうなるでしょうか?
$message=join($arry,"|");
$Tbody->TROut($message); ;
?>