PHP 8.5.0 Released!

tidy::cleanRepair

tidy_clean_repair

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::cleanRepair -- tidy_clean_repairExecute configured cleanup and repair operations on parsed markup

Description

Object-oriented style

public tidy::cleanRepair(): bool

Procedural style

tidy_clean_repair(tidy $tidy): bool

This function cleans and repairs the given tidy tidy.

Parameters

tidy

The Tidy object.

Return Values

Returns true on success or false on failure.

Examples

Example #1 tidy::cleanrepair() example

<?php
$html
= '<p>test</I>';

$tidy = tidy_parse_string($html);
$tidy->cleanRepair();

echo
$tidy;
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

See Also

add a note

User Contributed Notes 1 note

up
2
steven at nevvix dot com
7 years ago
<?php
/**
 * UTF-8 HTML5-compatible Tidy
 *
 * @param string $html
 * @param array $config
 * @param string $encoding
 * @link http://tidy.sourceforge.net/docs/quickref.html
 */
function tidy_html5($html, array $config = [], $encoding = 'utf8') {
    if (!extension_loaded('tidy')) {
        throw new \Exception("Tidy extension is missing!");
        return;
    }
    $config += [
        'clean'       => TRUE,
        'doctype'     => 'omit',
        'indent'      => 2, // auto
        'output-html' => TRUE,
        'tidy-mark'   => FALSE,
        'wrap'        => 0,
        // HTML5 tags
        'new-blocklevel-tags' => 'article aside audio bdi canvas details dialog figcaption figure footer header hgroup main menu menuitem nav section source summary template track video',
        'new-empty-tags' => 'command embed keygen source track wbr',
        'new-inline-tags' => 'audio command datalist embed keygen mark menuitem meter output progress source time video wbr',
    ];
    $html = tidy_parse_string($html, $config, $encoding);
    tidy_clean_repair($html);
    return '<!DOCTYPE html>' . PHP_EOL . $html;
}

$html = '<z/><p><a href="#">Link</a></p><p>Second para</p>';
echo tidy_html5($html);

Output:
<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<body>
  <p><a href="#">Link</a></p>
  <p>Second para</p>
</body>
</html>
To Top