2010年1月14日 星期四

CuDebugger - Display PHP value about Array , Class detail information.

// Display PHP value about Array , Class detail information.

$debug = new CuDebugger
$debug->debug($result,  $key);


// CuDebugger.php

class CuDebugger  {

    var $m_Data;
    var $m_DataIndex;

    function CuDebugger() {
        $this->m_Data = array();
        $this->m_DataIndex = 0;
    }
    
    function debug($data, $key = null, $innerText = false)
    {
    
        $index = $this->m_DataIndex + 1;
        $this->m_Data[$index . " " .$key] = $data;
        $this->m_DataIndex = $index;
    }
    
    function innerText($data, $key = null)
    {
        $data = str_replace("<", "& lt;", $data);
        $data = str_replace(">", "& gt;", $data); 
        
        $this->debug($data, $key);
    }
    
    function GetHTML(){
        return $this->printArray($this->m_Data);
    }
    
    function printArray($var) {
        
        $title_string = "";
        $string_row = "";
        $string_value = "";
        $string = "";
        
        foreach($var as $key => $value){
            
            
            if( is_array($value) ) {
                $string_value .= $this->printArray($value, false);
            }
            elseif(gettype($value) == 'object') {
                $string_value .= "Object of class " . get_class($value) . " { ".serialize($value) . " } ";
            }
            elseif( $value ) {
                $string_value .= "$value";
            }
            else {
                $string_value .= "< BR >";
            }
            
            $string_row .= "<tr>\n<td><b>$key</b></td><td>$string_value</td></tr>\n";       
            $string_value = "";
            
        }
        
        if( $string_row ) {
            $string = '<table border = "1">'.$string_row;
            $string .= "</table>\n";
        }
        
        return $string;
        
        
    }   
}

1 則留言:

  1. 名叫debuger 就是拿來當做輸出錯誤,警告用的, php 的除錯器實在是讓人很沒力, 只會顯示錯的那一行, 其他一概沒有, 也沒堆壘。

    回覆刪除