//The tidy tree of your favorite !
//For PHP 5 (CGI)
//Thanks to john@php.net
//$file=;//$cns=get_defined_constants(true);$tidyCns=array("tags"=>array(),"types"=>array());
foreach($cns["tidy"] as$cKey=>$cVal){
if($cPos=strpos($cKey,$cStr="TAG"))$tidyCns["tags"][$cVal]="$cStr: ".substr($cKey,$cPos+strlen($cStr)+1);
elseif($cPos=strpos($cKey,$cStr="TYPE"))$tidyCns["types"][$cVal]="$cStr: ".substr($cKey,$cPos+strlen($cStr)+1);
}$tidyNext=array();//echo"
Tidy Tree ::$file";echo"
";//tidyTree(tidy_get_root(tidy_parse_file($file)),0);//functiontidyTree($tidy,$level){
global$tidyCns,$tidyNext;$tidyTab=array();$tidyKeys=array("type","value","id","attribute");
foreach($tidyas$pKey=>$pVal){
if(in_array($pKey,$tidyKeys))$tidyTab[array_search($pKey,$tidyKeys)]=$pVal;
}ksort($tidyTab);
foreach($tidyTabas$pKey=>$pVal){
switch($pKey){
case0:
if($pVal==4)$value=true; else$value=false;
echoindent(true,$level).$tidyCns["types"][$pVal]."\n"; break;
case1:
if($value){
echoindent(false,$level)."VALEUR : ".str_replace("\n","\n".indent(false,$level),$pVal)."\n";
}
break;
case2:
echoindent(false,$level).$tidyCns["tags"][$pVal]."\n"; break;
case3:
if($pVal!=NULL){
echoindent(false,$level)."ATTRIBUTS : ";
foreach ($pValas$aKey=>$aVal) echo"$aKey=$aVal"; echo"\n";
}
}
}
if($tidy->hasChildren()){$level++;$i=0;$tidyNext[$level]=true;
echoindent(false,$level)."\n";
foreach($tidy->childas$child){$i++;
if($i==count($tidy->child))$tidyNext[$level]=false;tidyTree($child,$level);
}
}
else echoindent(false,$level)."\n";
}//functionindent($tidyType,$level){
global$tidyNext;$indent="";
for($i=1;$i<=$level;$i++){
if($i
if($tidyNext[$i])$str="| "; else$str=" ";
}
else$str="+--";$indent=$indent.$str;
}
return$indent;
}//echo"
";//?>