php实现一个输出HTML TABLE的类,源代码如下:

<?php
class Table{
    var $table_array = array();
    var $headers = array();
    var $cols;
    function Table( $headers ){
        $this->headers = $headers;
        $this->cols = count ( $headers );
    }

    function addRow( $row ){
        if ( count ($row) != $this->cols )
            return false;
        array_push($this->table_array, $row);
        return true;
    }

    function addRowAssocArray( $row_assoc ) {
        if ( count ($row_assoc) != $this->cols )
            return false;
        $row = array();
        foreach ( $this->headers as $header ) {
            if ( ! isset( $row_assoc[$header] ))
                $row_assoc[$header] = \" \";
            $row[] = $row_assoc[$header];
        }
        array_push($this->table_array, $row) ;
    }

    function output() {
         print \"<pre>\";
         foreach ( $this->headers as $header )
             print \"<B>$header</B>  \";
         print \"\\n\";
         foreach ( $this->table_array as $y ) {
             foreach ( $y as $xcell )
                 print \"$xcell  \";
             print \"\\n\";
         }
         print \"</pre>\";
     }
}

class HTMLTable extends Table{
     var $bgcolor;
     var $cellpadding = \"2\";
     function HTMLTable( $headers, $bg=\"#ffffff\" ){
         Table::Table($headers);
         $this->bgcolor=$bg;
     }
     function setCellpadding( $padding ){
         $this->cellpadding = $padding;
     }
     function output(){
         print \"<table cellpadding=\\\"$this->cellpadding\\\" border=1>\";
         foreach ( $this->headers as $header )
             print \"<td bgcolor=\\\"$this->bgcolor\\\"><b>$header</b></td>\";
         foreach ( $this->table_array as $row=>$cells ) {
             print \"<tr>\";
             foreach ( $cells as $cell )
                 print \"<td bgcolor=\\\"$this->bgcolor\\\">$cell</td>\";
             print \"</tr>\";
         }
         print \"</table>\";
     }
}

$test = new HTMLTable( array(\"a\",\"b\",\"c\"), \"#00FF00\");
$test->setCellpadding( 7 );
$test->addRow( array(1,2,3));
$test->addRow( array(4,5,6));
$test->addRowAssocArray( array ( \'b\'=>0, \'a\'=>6, \'c\'=>3 ));
$test->output();
?>

在线运行

收藏 打印