我使用tinymce作爲我的網站上的文本編輯器。 有時,當我寫了一些文本並保存它的HTML代碼是一個「破」。 似乎有一些未封閉的HTML標籤打破了CSS佈局。這是什麼被發現作爲解決方案http://www.php.net/manual/en/tidy.examples.phptinymce打破了我的佈局
是否有一些其他技術(PHP)來自動完成未封閉標籤?
我使用tinymce作爲我的網站上的文本編輯器。 有時,當我寫了一些文本並保存它的HTML代碼是一個「破」。 似乎有一些未封閉的HTML標籤打破了CSS佈局。這是什麼被發現作爲解決方案http://www.php.net/manual/en/tidy.examples.phptinymce打破了我的佈局
是否有一些其他技術(PHP)來自動完成未封閉標籤?
整潔是爲你走的路。任何定製解決方案使用正則表達式會比tidy設計的更糟糕。
但真正的問題是,TinyMCE創建未關閉的標籤聽起來像您的TinyMCE安裝有一些問題 - 您確定您使用的是最新版本(3.3.9.2)?只有在您手動操作HTML源代碼時,才能輸出未關閉的標籤。
如果您不能使用Tidy,那麼您可以利用DOM來清除未封閉和嚴重嵌套的標籤。以下內容將在html和body容器標籤中包含固定標記,但您可以通過快速的preg_replace
或str_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;