我使用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;