📄 table.php
字号:
<html> <head> <title>Table</title> <style type="text/css"> <!-- used in pretty_table example --> .header { background: yellow; text-align: center; } </style> </head> <body> <? error_reporting(E_ALL); class html_table { var $cols = 0; var $rows = 0; var $cell = array(); var $html = ''; var $cell_content = '?; // default cell content. var $content_style = ''; // default content style. content is surrounded by <SPAN> tag. var $col_style = array(); // default style for table column. enclosed in <TD> tags. var $col_cell_style = array(); // default style for column cells. enclosed in <span> tags. var $cell_style = ''; // default cell style. enclosed in <TD> tags. var $table_style = ''; // default table style. enclosed in <TABLE> tags. function cell_init() { return array( 'content' => $this->cell_content, 'style' => '', 'cell_style'=> ''); } function init($parameters) { if (isset($parameters['cols'])) $this->cols = $parameters['cols']; if (isset($parameters['rows']))$this->rows = $parameters['rows']; for ($row = 1; $row <= $this->rows; $row++) { for ($col = 1; $col <= $this->cols; $col++) { $this->cell[$row][$col] = $this->cell_init(); } } } function add_rows($num_rows) { for ($row = 1; $row <= $num_rows; $row++) { for ($col = 1; $col <= $this->cols; $col++) { $this->cell[$row + $this->rows][$col] = $this->cell_init(); } } $this->rows += $num_rows; } function add_cols($num_cols) { for ($row = 1; $row <= $this->rows; $row++) { for ($col = 1; $col <= $num_cols; $col++) { $this->cell[$row][$col+$this->cols] = $this->cell_init(); } } $this->cols += $num_cols; } function code() { if (!empty($this->html)) return 1; $this->html = '<TABLE '.$this->table_style.'>'."n"; for ($row = 1; $row <= $this->rows; $row++) { $this->html .= ' <TR>'."n"; for ($col = 1; $col <= $this->cols; $col++) { $extra = ''; //check if "colspan" defined. if so then hide cells that get merged. if (isset($this->cell[$row][$col]['colspan'])) { $extra .= 'COLSPAN="'.$this->cell[$row][$col]['colspan'].'"'; for ($hidden_col = 1; $hidden_col < $this->cell[$row][$col]['colspan']; $hidden_col++) { $this->cell[$row][$col+$hidden_col]["hide"] = true; //check if "rowspan" defined. if so then propogate "colspan" into merged rows. if (isset($this->cell[$row][$col]["rowspan"])) { for ($hidden_row = 1; $hidden_row < $this->cell[$row][$col]['rowspan']; $hidden_row++) { $this->cell[$row+$hidden_row][$col]["colspan"] = $this->cell[$row][$col]['colspan']; } } } } //check if "rowspan" defined. if so then hide cells that get merged. if (isset($this->cell[$row][$col]["rowspan"])) { $extra .= 'ROWSPAN="'.$this->cell[$row][$col]['rowspan'].'"'; for ($hidden_row = 1; $hidden_row < $this->cell[$row][$col]['rowspan']; $hidden_row++) { $this->cell[$row+$hidden_row][$col]["hide"] = true; } } // code to draw cell html... if (isset($this->cell[$row][$col]['hide'])) continue; // if hide then skip this cell. // otherwise draw cell with style... if (!empty($this->cell[$row][$col]['cell_style'])) $this->html .= ' <TD '.$this->cell[$row][$col]['cell_style'].' '.$extra.'>'; else if (!empty($this->col_style[$col])) $this->html .= ' <TD '.$this->col_style[$col].' '.$extra.'>'; else $this->html .= ' <TD '.$this->cell_style.' '.$extra.'>'; // draw content of cell with style... if (!empty($this->cell[$row][$col]['style'])) $this->html .= '<SPAN '.$this->cell[$row][$col]['style'].'>'; else if (!empty($this->col_cell_style[$col])) $this->html .= '<SPAN '.$this->col_cell_style[$col].'>'; else if (!empty($this->content_style)) $this->html .= '<SPAN '.$this->content_style.'>'; $this->html .= $this->cell[$row][$col]['content']; if (!empty($this->cell[$row][$col]['style']) or !empty($this->col_cell_style[$col]) or !empty($this->content_style)) $this->html .= '</SPAN>'; $this->html .= '</TD>'."n"; } $this->html .= ' </TR>'."n"; } $this->html .= '</TABLE>'."n"; } function display() { if (empty($this->html)) $this->code(); print $this->html; } } // end of class html_table. class html_table_pretty extends html_table { var $background = ''; var $border_width = ''; var $border_color = ''; var $html_pretty = ''; function code_pretty() { $this->code(); $border_style = ''; if (!empty($this->border_width)) $border_style .= ' CELLSPACING="0" CELLPADDING="0" BORDER="'.$this->border_width.'"'; if (!empty($this->border_color)) $border_style .= ' BORDERCOLOR="'.$this->border_color.'"'; $this->html_pretty = '<TABLE'.$border_style.'><TR><TD '.$this->background.'>'."n"; $this->html_pretty .= $this->html; $this->html_pretty .='</TD></TR></TABLE>'."n"; } function display_pretty() { if (empty($this->html_pretty)) $this->code_pretty(); print $this->html_pretty; } } // end of class html_table_pretty ?> <? //**************** // first example - simple //**************** $data = new html_table; // define table size. $data->init(array("cols" => 3, "rows" => 3)); // define table content. $data->cell[1][1]["content"]="apple"; $data->cell[1][2]["content"]="orange"; $data->cell[1][3]["content"]="pear"; $data->cell[3][1]["content"]="plum"; $data->cell[2][1]["content"]="grape"; // table style $data->table_style = 'BORDER="0" CELLPADDING="4" CELLSPACING="2" BGCOLOR="#ffcc99"'; // set style for column #1 $data->col_style[1] = 'BGCOLOR="red"'; // style for column #1 $data->col_cell_style[1] = 'STYLE="font: bold 12pt monospace;"'; // style for contents of cells in column #1 $data->cell[1][2]["rowspan"]=3; $data->cell[1][3]["rowspan"]=3; // code and display. //$data->code(); // optional $data->display(); ?> <BR><BR> <? //**************** // second example //**************** $data = new html_table_pretty; // pretty class is the same as html_table class, but uses another table as a background. // define background table properties. $data->background = 'BGCOLOR="black"'; $data->border_color = 'black'; $data->border_width = '2'; // define table size. $data->init(array("cols"=>3)); // alternate way to define table size... $data->add_rows("3"); // ...can add rows/cols at any stage before coding. // define table content. $data->cell[1][1]["content"]="apple"; $data->cell[2][2]["content"]="orange"; $data->cell[2][3]["content"]="pear"; $data->cell[3][1]["content"]="plum"; $data->cell[2][1]["content"]="grape"; $data->cell[1][1]["colspan"]=3; $data->cell[2][3]["rowspan"]=2; $data->cell[3][1]["colspan"]=2; // default styles. $data->cell_style = 'WIDTH="100" BGCOLOR="#cccccc"'; // defautl style for table cells $data->content_style = 'STYLE="font: bold 9pt monospace;"'; // default cell content style. // define fancy styles for individual cells. $data->cell[1][1]["style"] = 'STYLE="color: red; font: italic 18pt sans-serif;"'; $data->cell[1][1]["cell_style"] = 'CLASS="header"'; // can refer to CSS files using styles. see style info in header. $data->cell[3][1]["style"] = 'STYLE="color: red; font: bold 18pt serif;"'; $data->cell[3][1]["cell_style"] = 'ALIGN="right" bgcolor="lightblue"'; // code and display. $data->code_pretty(); $data->display_pretty(); ?> </body> </html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -