2010-10-05 118 views

回答

1

整潔是爲你走的路。任何定製解決方案使用正則表達式會比tidy設計的更糟糕。

但真正的問題是,TinyMCE創建未關閉的標籤聽起來像您的TinyMCE安裝有一些問題 - 您確定您使用的是最新版本(3.3.9.2)?只有在您手動操作HTML源代碼時,才能輸出未關閉的標籤。

0

如果您不能使用Tidy,那麼您可以利用DOM來清除未封閉和嚴重嵌套的標籤。以下內容將在html和body容器標籤中包含固定標記,但您可以通過快速的preg_replacestr_replace輕鬆處理。

error_reporting(0); 
header('Content-type: text/plain'); 

$html = '<p>Some <strong><em>badly</strong> formatted content</p>'; 

$xml = '<?xml version="1.0" encoding="utf-8" ?>' . $html; 

$dom = new DomDocument(); 
$valid = $dom->loadXML($xml); 

if (false === $valid) { 
    $doc = new DOMDocument(); 
    $doc->encoding = 'UTF-8'; 

    $doc->loadHTML($xml); 
    $html = simplexml_import_dom($doc)->asXML(); 
} 

echo $html;