Version: 1.0.1

Type: Function

Category: Other

License: Other

Description: include file for dumping complex objects in three formats: preformatted text, HTML lists, and HTML tables.



<?
if(!isset($object_dump_lib_semaphore)){
$object_dump_lib_semaphore=TRUE;

/*
object_dump.lib        version 1.0

syntax:
 object_dump(string $name, mixed $object, string $prefix="", string $type="html")
    potential front end for the other three, not really needed

 html_object_dump(string $name, mixed $object, string $prefix="")
    Dumps as a HTML list.  changing $listt and $clistt will change the type of list

 table_object_dump(string $name, mixed $object, string $prefix="")
    Dumps as a HTML table.  There are some config type things near the top
    Currently pretty ugly.

 text_object_dump(string $name, mixed $object, string $prefix="")
    Dumps as preformatted text.

  $prefix is superfulous in all but text_object_dump, but it keeps the interfaces the same


    Kyle Jerviss
    kjj@fusion-solutions.com
*/

function object_dump($name,$obj,$prefix="",$type="html"){
 if("html"==$type)$retval=html_object_dump($name,$obj,$prefix);
 if("text"==$type)$retval=text_object_dump($name,$obj,$prefix);
 if("table"==$type)$retval=table_object_dump($name,$obj,$prefix);
 return $retval;
}

function html_object_dump($name,$obj,$prefix=""){
 $listt="<UL>";
 $clistt="</UL>";
 $retval="";
 $retval.=$name;
 if(is_array($obj) OR is_object($obj)){
  $retval.=" (".gettype($obj).")";
  $retval.=$listt."";
  while(list($key,$val)=each($obj)){
   $retval.="<LI>".html_object_dump($key,$val," | ".$prefix)."</LI>";
  }
  $retval.=$clistt;
 }else{
  $retval.=" = ".$obj." (".gettype($obj).")";
 }
 return $retval;
}

function table_object_dump($name,$obj,$prefix=""){
 $size="<H2>";
 $csize="</H2>";
 $border=    "border=1 bordercolor=\"#000000\"";
 $align=    "align=\"left\"";
 $valign=    "valign=\"top\"";
 $ncolor=    "bgcolor=\"#FF0000\"";
 $tcolor=    "bgcolor=\"#00FF00\"";
 $vcolor=    "bgcolor=\"#0000FF\"";
 $retval="";
 $retval.="<TABLE ".$border.">\n";
 $retval.="\t<TR>\n\t\t<TD rowspan=1 ".$valign." ".$align." ".$ncolor.">".$size.$name.$csize."</TD>\n";
 if(is_array($obj) OR is_object($obj)){
  $retval.="\t\t<TD rowspan=1 ".$valign." ".$align." ".$tcolor.">(".gettype($obj).")</TD>\n";
  $retval.="\t\t<TD rowspan=2 ".$valign." ".$align." ".$vcolor.">";
  while(list($key,$val)=each($obj)){
   $retval.=table_object_dump($key,$val," | ".$prefix);
  }
  $retval.="</TD>\n";
 }else{
  $retval.="\t\t<TD ".$valign." ".$align." ".$tcolor.">(".gettype($obj).")</TD>\n";
  $retval.="\t\t<TD ".$valign." ".$align." ".$vcolor.">".$obj."</TD>\n";
 }
 $retval.="\t</TR>\n</TABLE>\n";
 return $retval;
}

function text_object_dump($name,$obj,$prefix=""){
 $retval="";
 $retval.=$prefix." ".$name;
 if(is_array($obj) OR is_object($obj)){
  $retval.=" (".gettype($obj).")"."\n";
  while(list($key,$val)=each($obj)){
   if(""==$prefix){
    $retval.=text_object_dump($key,$val," + ".$prefix);
   }else{
    $retval.=text_object_dump($key,$val," | ".$prefix);
   }
  }
 }else{
  $retval.=" = ".$obj." (".gettype($obj).")"."\n";
 }
 return $retval;
}

}
?>