2012-03-26 4 views
0

Micrsoft Word 2007/2010から生成されたhtml文書を使って作業しています。信じられないほど汚れたHTMLを生成することに加えて、wordはブロックとインラインスタイルの両方を使用する傾向もあります。私は、既存のインラインスタイル要素にブロックをマージするPHPライブラリを探しています。スタイルシートとインラインスタイルをマージできるPHPライブラリ

編集目標は、元のHTMLがある場合は保存TinyMCEの

のようなWYSIWYGエディタで元の書式と編集可能に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

あなたはCSSブロックを取り除き、すべてをインラインで動かそうとしていますか?それとも別の方法ですか? –

+3

これの価値は疑問です。完全なDOMパーサとCSSパーサが必要なため、複雑な作業です。すでにあるよりもはるかに膨らんでしまう可能性があります。 – SpliFF

+0

cssブロックからインラインに。 – ltfishie

答えて

0

私はついにそれが動作するように管理しました。 は、右の$プロパティが宣言された場合後、ループの初めまでのライン

// add new properties into the list 
foreach($rule['properties'] as $key => $value) $properties[$key] = $value; 

の移動:コードは、一度簡単な変更で http://blog.verkoyen.eu/blog/p/detail/convert-css-to-inline-styles-with-php のオフに基づいています。

ただし、WordPressでこの機能を使用するには、もう1つの変更が必要です。 DomDocumentは、文書からの&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のために起こっているのか分かっているなら、なぜそれが起こっているのかを知りたいので、あなたの答えを投稿してください。

0

いいえ、これを試してみてください。http://ckeditor.com/やtinymceなどにコピーして貼り付けていますが、それをきれいにしていますが、まだ完全ではないと思っています。

1

チェックアウト:

PHPのソースのいずれかからコードを移植、または利用可能なAPIのいずれかを使用して、あなたのCSSスタイルをインラインで得ることのトリックを行う必要があります。

+0

ありがとう、感情派は非常に近いようです。それを試してみます。既にhttp://blog.verkoyen.eu/blog/p/detail/convert-css-to-inline-styles-with-phpを試しており、スタイルをマージしません。 – ltfishie

関連する問題