function formathtml($html)
{
$tabs=0;
$html_array=preg_split('/(<(?:[^<>]+(?:"[^"]*"|\'[^\']*\')?)+>)/',$html,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
$html='';
for ($x=0;$x<count($html_array);$x++)
{
if (substr($html_array[$x],0,2)=='</')
{
$tabs--;
}
for ($y=0;$y<$tabs;$y++)
{
$html.=" ";
}
$html.=$html_array[$x]."\r\n";
if ((substr($html_array[$x],0,1)=='<') && (substr($html_array[$x],1,1)!='/'))
{
if ((substr($html_array[$x],1,1)!=' ') && (substr($html_array[$x],1,1)!='!') && (substr($html_array[$x],1,3)!='img') && (substr($html_array[$x],1,2)!='br') && (substr($html_array[$x],1,2)!='hr') && (substr($html_array[$x],1,5)!='input') && (substr($html_array[$x],1,4)!='link') && (substr($html_array[$x],1,4)!='meta') && (substr($html_array[$x],1,3)!='col') && (substr($html_array[$x],1,5)!='frame') && (substr($html_array[$x],1,7)!='isindex') && (substr($html_array[$x],1,5)!='param') && (substr($html_array[$x],1,4)!='area') && (substr($html_array[$x],1,4)!='base'))
{
$tabs++;
}
}
}
if ($tabs!=0)
{
$html.='<!--'.$tabs." open elements found-->\r\n";
}
return $html;
}