function html_tidy( $input_html, $indent = "true", $no_body_tags = "true", $fix = "true" ) {
   ob_start(  );
   $tidy = new tidy;
   $config = array( 'indent' => $indent, 'output-xhtml' => true, 'wrap' => 200, 'clean' => $fix, 'show-body-only' => $no_body_tags );
   $tidy->parseString( $input_html, $config, 'utf8' );
   $tidy->cleanRepair(  );
   $input = $tidy;
   return $input;


  1. Zeke N
    Permalink to comment#

    So, I’m thinking it would be cool to write the function html_print(); HTML print would basically be: function html_print($html){
    global $doc_html;
    $doc_html .= $html;

    Then, at the end of the page, one could do echo html_tidy($doc_html); This would mean all the php generated html would be formatted nicely. Does that sound like a good idea to anyone else?

  2. David A.
    Permalink to comment#

    The default function arguments would produce an error since tidy expects a boolean value, but you’re giving a string. The first line should be like so:

    function html_tidy( $input_html, $indent = TRUE,
                                                   $no_body_tags = TRUE, $fix = TRUE ) {

    Other than that, very good suggestion. :-)

  3. ghindows
    Permalink to comment#

    $function html_tidy( $input_file, $indent = true, $no_body_tags = false, $fix = true ) {
    $tidy = new tidy;
    //config is from
    $config = array( ‘indent’ => $indent,
    ‘output-html’ => true,
    ‘wrap-attributes’ => false,
    ‘wrap’ => 120,
    ‘show-body-only’ => $no_body_tags
    $tidy->parseFile( $input_file, $config );
    $tidy->cleanRepair( );
    return tidy_get_output($tidy);

  4. william
    Permalink to comment#

Leave a Comment

Posting Code

We highly encourage you to post problematic HTML/CSS/JavaScript over on CodePen and include the link in your post. It's much easier to see, understand, and help with when you do that.

Markdown is supported, so you can write inline code like `<div>this</div>` or multiline blocks of code in triple backtick fences like this:

  function example() {
    element.innerHTML = "<div>code</div>";

We have a pretty good* newsletter.