2010-06-24 82 views
1

我有一個用戶通常將內容從Microsoft Word粘貼到的文本區域。我正在使用Tiny MCE進行格式化。問題是他們粘貼的字符串總是有註釋掉的樣式定義。我需要一種方法從字符串中去除這些註釋。使用PHP從Microsoft Word粘貼的字符串樣式註釋

這裏是得到補充意見的例子:

<!-- /* Font Definitions */ @font-face {font-family:"Courier New"; panose-1:2 7 3 9 2 2 5 2 4 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:Wingdings; panose-1:5 2 1 2 1 8 4 8 7 8; mso-font-charset:2; --> 

這只是一個非常小的一塊,它ussually有數百行的。

無論如何,使用用strip_tags IM擺脫不必要的HTML標籤,我已經使用後續的preg_replace嘗試,但作風的意見總是有:

$e_description = preg_replace('/<!--(.|\s)*?-->/', '',$_POST['description']); 

如何擺脫這種垃圾的任何建議?

回答

1

爲什麼不只是添加ms修飾符(m是多行,s是「點所有的」裏.匹配所有字符:

preg_replace('/<!--.*?-->/ms', '', $_POST['description']); 

可能爲你工作(嘗試一下)..

+1

我寧願建議'/ <! -/\ * * Font Definitions。*? - >/ims''因爲用戶可能想要輸入簡單的評論,即使這樣也是非常危險的 – 2010-06-24 19:04:21

+0

這不會做任何事 //ms ,這取代了字符串中的所有內容,不僅僅是註釋區域 '/ <! -/\ * Font Definitions。*? - >/ims' 感謝您的建議。 – Daelan 2010-06-27 02:37:44