我正在处理从Micrsoft Word 2007/2010生成的html文档。除了生成令人难以置信的脏HTML之外,单词还具有使用块和内联样式的趋势。我正在寻找一个php库将块合并到已经存在的内联样式元素。
修改 目标是构建一个html块保留原始格式,并在WYSIWYG编辑器中编辑,如tinyMCE
示例
如果原始html是:
<html>
<head>
<style>
.normaltext {color:black;font-weight:normal;font-size:10pt}
.important {color:red;font-weight:bold;font-size:11pt}
</style>
<body>
<p class="normaltext" style="font-family:arial">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
In ut erat id dui mollis faucibus. Mauris eu neque et eros tempus placerat.
<span class="important">Nam in purus nisi</span>, vitae dictum ligula.
Morbi mattis eros eget diam vulputate imperdiet.
<span class="important" style="color:green">Integer</span> a metus eros.
Sed iaculis porta imperdiet.
</p>
</body>
</html>
应该成为:
<html>
<head>
<body>
<p style="font-family:arial;color:black;font-weight:normal;font-size:10pt">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
In ut erat id dui mollis faucibus. Mauris eu neque et eros tempus placerat.
<span style="color:red;font-weight:bold;font-size:11pt">Nam in purus nisi</span>, vitae dictum ligula.
Morbi mattis eros eget diam vulputate imperdiet.
<span style="color:green;font-weight:bold;font-size:11pt">Integer</span> a metus eros.
Sed iaculis porta imperdiet.
</p>
</body>
</html>
答案 0 :(得分:1)
退房:
将代码从任一源代码移植到PHP,或者使用任何可用的API都可以实现内联CSS样式的技巧。
答案 1 :(得分:1)
请参阅CssToInlineStyles项目,该项目完全符合您的要求。
答案 2 :(得分:0)
不,但尝试这一点,复制并粘贴从单词到http://ckeditor.com/或tinymce等确实清理它很多,认为它仍然不完美它会让你更接近。
答案 3 :(得分:0)
我终于设法让它发挥作用。代码基于 http://blog.verkoyen.eu/blog/p/detail/convert-css-to-inline-styles-with-php 一次简单的改变: 移动线
// add new properties into the list
foreach($rule['properties'] as $key => $value) $properties[$key] = $value;
直到循环开始,紧接在声明$ properties之后。
然而,要使这项工作适用于WordPress,还需要进行一项额外的更改。 DomDocument替换&amp; nbps;从具有空白的文档,打破WordPress更新声明,导致强大的被切断。有关解决方案,请参阅我的其他问题: DOMDocument->saveHTML() converting to space
https://wordpress.stackexchange.com/questions/48692/post-content-getting-cut-off-on-blank-space-on-wpdb-update详细说明了这个问题。如果你知道为什么WordPress会发生这种情况,请在那里发布你的答案,因为我非常想知道它为什么会发生。