Nachfolgend eine sehr hilfreiche Funktion, um einen String der HTML-Code enthält als valides HTML zurückzuliefern.
Hinweis: Das Modul tidy.so muß aktiviert sein.
Danke an Quelle.
/**
* Liefert einen sauberen HTML-String zurück
* @param $html
* @param string $tidy_config
* @return string
*/
public function htmlTidy($html, $tidy_config = '')
{
$config = array(
'show-body-only' => true,
'clean' => true,
'char-encoding' => 'utf8',
'add-xml-decl' => true,
'add-xml-space' => true,
'output-html' => false,
'output-xml' => false,
'output-xhtml' => false,
'numeric-entities' => false,
'ascii-chars' => false,
'doctype' => 'strict',
'bare' => true,
'fix-uri' => true,
'indent' => false,
'indent-spaces' => 0,
'tab-size' => 0,
'wrap-attributes' => true,
'wrap' => 0,
'indent-attributes' => false,
'join-classes' => false,
'join-styles' => false,
'enclose-block-text' => true,
'fix-bad-comments' => true,
'fix-backslash' => true,
'replace-color' => false,
'wrap-asp' => false,
'wrap-jste' => false,
'wrap-php' => false,
'write-back' => true,
'drop-proprietary-attributes' => false,
'hide-comments' => true,
'hide-endtags' => false,
'literal-attributes' => false,
'drop-empty-paras' => true,
'drop-font-tags' => true,
'enclose-text' => true,
'quote-ampersand' => true,
'quote-marks' => false,
'quote-nbsp' => true,
'vertical-space' => true,
'wrap-script-literals' => false,
'tidy-mark' => true,
'merge-divs' => false,
'repeated-attributes' => 'keep-last',
'break-before-br' => false,
);
if ($tidy_config == '') {
$tidy_config = & $config;
}
$tidy = new tidy();
$tidyString = $tidy->repairString($html, $tidy_config, 'UTF8');
$out = $tidyString;
unset($tidy);
unset($tidy_config);
return ($out);
}