2010-06-24 156 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