2011-05-01 8 views
0


strip_tagsを使用してHTMLをテキストに変換する際に問題が発生しています。
htmlコードがあるPHPストリップ奇数htmlタグ

<img style="max-width: 60px; max-height: 90px; 
      width: expression(this.width > 60 ? 60: true); 
      height: expression(this.height > 90 ? 90: true);" 
    src="image.php?s=d377256dd97b17e9bf0b1182743c95c2&amp;u=1&amp;dateline=1215813557" 
    alt="DailyFX Forum Administrator's Avatar" /> 

strip_tags私はpreg_replaceを使用していくつかのコードを書きたいが、私は最後の>、ないスタイルで>一致していないか、うまく動作しないことができます。手伝って頂けますか ?ここで

おかげ
ゲイリー

+1

無関係:これは非常に奇妙な表現です: 'height:expression(this.height> 90?90:true);'これは可能です: 'height:true;' ?? 'height:expression(this.height> 90?90:this.height);'もしあなたがそうならば、 'max-height:90px;'を使用してください。 – Rudie

+0

@Rudie私はこのCSS表現が回ったと思いますIE6の制限( 'max-height'プロパティのサポートなしなど) – alex

+0

IE6? IE6は一体何ですか? IE6を使用している場合、あなたは失敗し、あなたのコンピュータを破壊して破壊する、不快で読めないウェブサイトが必要です。 – Rudie

答えて

1

マークアップが無効であるため、strip_tagsやその他のマークアップパーサーを使用する前にマークアップを削除する必要があります。この特定の問題については、以下を試すことができます。 preg_replace("expression([^)]+)", "", $your_html) インラインスタイルの代わりにスタイルシートを使用して、有効なマークアップがあるようにすることをお勧めします。

+0

はい。ショートカットがありません。これは、strip_tagsを使用する前にそれをサニタイズする方法です。 preg_replace(array( "'/ *>。*?<\/style>/mi')、" "、$ your_htmlなど) –

0

は正規表現が(複雑ではない少なくとも1つの)カットされません完璧な例です。

DOMパーサーを使用します。

関連する問題