• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • tidy::cleanRepair()

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

    对已分析的标记执行配置的清理和修复操作

    说明

    面向对象风格
    publictidy::cleanRepair(void): bool
    过程化风格
    tidy_clean_repair(tidy$object): bool

    参数

    • $object:Tidy对象。

    返回值

    成功时返回TRUE,或者在失败时返回FALSE

    范例

    tidy::cleanrepair()

    <?php
    $html = '<p>test</I>';
    $tidy = tidy_parse_string($html);
    $tidy->cleanRepair();
    echo $tidy;
    ?>
    

    以上例程会输出:

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

    参见

    • tidy::repairFile() 修复文件并将其作为字符串返回
    • tidy::repairString() 使用可选提供的配置文件修复字符串
    <?php
    /**
     * UTF-8 HTML5-compatible Tidy
     *
     * @param string $html
     * @param array $config
     * @param string $encoding
     */
    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);
    

    以上例程会输出:

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

    上篇:tidy::body()

    下篇:tidy::__construct()