使用PHP从Microsoft Word粘贴的字符串中删除样式注释

时间:2010-06-24 18:28:00

标签: php ms-word tinymce

我有一个文本区域,用户通常会将Microsoft Word中的内容粘贴到其中。我正在使用Tiny MCE进行格式化。问题是它们粘贴的字符串总是有被注释掉的样式定义。我需要一种方法来从字符串中删除这些注释的东西。

以下是添加的评论示例:

<!-- /* 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; -->

这只是它的一小部分,它通常持续数百行。

无论如何,我使用strip_tags来摆脱不需要的HTML标签,我尝试使用关注preg_replace但风格注释总是在那里:

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

关于如何摆脱这种垃圾的任何建议?

1 个答案:

答案 0 :(得分:1)

为什么不添加ms修饰符(m是多行的,s是“dot-all”,其中.匹配所有字符:

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

这可能适合你(尝试一下)......