PHP删除直接从Word粘贴的非格式化函数。

一般处理有两种类型:1。由编辑器的JS直接删除。2。在提交到后台后,程序将直接删除无效的标签。接下来,我将分享一种通过PHP处理的方法,成功率可能不是100%。这个程序也在PHP官方网络上看到,顺便说一下。
复制代码代码如下所示:
功能clearhtml($的内容,allowtags美元=){

mb_regex_encoding('utf-8);
替换第一个特殊字符
$搜索阵列(' / '; / U, / / U ',';' / / U,/; / U, / / mdash;U);
替换=数组(、、、、);
$content = preg_replace(元搜索,取代美元,美元的内容);
/ /确保_all_ HTML实体转换为ASCII等价物——
在一些MS报头中,一些HTML实体被编码,有些则没有。
$content = html_entity_decode($的内容,ent_quotes,'utf-8);
尝试首先去掉任何C风格的注释,因为。
/ /防止strip_tags删除HTML注释(MS Word介绍组合)
如果(mb_stripos($的内容, / *)!= false){
内容mb_eregi_replace美元=(' # / *。* * / #的',' ',为内容,是的);
}
将一个空格引入任何可以被捕获的算术表达式中。
/ / < 1'becomes 1(注:有些应用程序特定的<)
$content = preg_replace(array( / <({ } + 0-9) /阵列(1美元),<),$的内容);

$content = strip_tags($的内容,allowtags美元);
/ /消除多余空格从开始和结束的线或任何有
内容preg_replace美元=(阵列( / ^ 的 + /、 / + $ /、 / / S + U),数组(' ',' ',' '美元),内容);
/去掉内联CSS并简化样式标签
$搜索=阵列(' # }×>(# ISU的*),# }×>(。*)# ISU ',' # }×>(。*)# ISU的);
$ =数组(2美元,2美元,1美元);
$content = preg_replace(元搜索,取代美元,美元的内容);

/ /在一些较新的MS Word的出口,你在哪里得到的条件。
/ /:无论是在一个HTML注释防止strip_tags从
一些MS风格定义最后一位去掉了这个剩余的注释。
num_matches美元= preg_match_all( / <!- $,$,$,匹配;
如果($ num_matches){
内容preg_replace美元=(' / / ISU ',' ',为内容);
}
返回$内容;
}

测试结果:
复制代码代码如下所示:
< PHP
microsoftinternetexplorer402documentnotspecified7.8normal0 $content =
好伴侣户外旅行-使旅行成为一种习惯!你越忙,你就想给自己放假吗你还记得上一次你专注于工作的时候吗出色的户外旅游,给您不同的旅游体验:自由的心,处处都是风景!;
Echo ClearHtml($内容);

*
所得结果:
好伴侣户外旅行-使旅行成为一种习惯!你越忙,你就想给自己放假吗你还记得上一次你专注于工作的时候吗卓越的户外旅游,给你不同的旅游体验:自由的心,处处是风景!
* /
>