php实现一个输出HTML TABLE的类

时间:2016-07-03
本文章向大家分享一个PHP输出HTML table的类,如果在某个页面需要使用到table,我们可以直接调用这个类输出table,这样很方便,具体php代码请看一下。

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();
?>

在线运行