tinymce打破了我的布局

时间:2010-10-05 12:52:42

标签: php html

我在我的网站上使用tinymce作为文本编辑器。 有时当我写一些文本并保存它时,HTML代码是“破碎的”。 似乎有一些未公开的html标签打破了CSS布局。这是一个解决方案http://www.php.net/manual/en/tidy.examples.php

是否有其他技术(php)可以自动完成未关闭的标签?

2 个答案:

答案 0 :(得分:1)

Tidy是你的最佳选择。任何定制解决方案使用正则表达式会比整理设计更糟糕。

但真正的问题是,TinyMCE正在创建未关闭的标签听起来像你的TinyMCE安装有问题 - 你确定你使用的是最新版本(3.3.9.2)吗?仅当您手动操作HTML源时,它才应输出未关闭的标记。

答案 1 :(得分: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;