可以将样式表与内联样式合并的php库

时间:2012-03-26 05:38:00

标签: php css

我正在处理从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>

4 个答案:

答案 0 :(得分:1)

答案 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 &nbsp; to space

https://wordpress.stackexchange.com/questions/48692/post-content-getting-cut-off-on-blank-space-on-wpdb-update详细说明了这个问题。如果你知道为什么WordPress会发生这种情况,请在那里发布你的答案,因为我非常想知道它为什么会发生。