通过PHP接收微信昵称并保存到数据库时,某些昵称带有特殊符号,无法保存。这时我们可以通过以下方法处理。
方法1:
protected function remove emoji($ clean _ text){
//Match Emoticons
$ regexemoticons='/[\ x { 1 f 600 }-\ x { 1 f 64 f }]/u '
$ clean _ text=preg _ replace($ regex emoticons,''$ clean _ text);
//match miscellaneous symbols and pictographs
$ regexsymbols='/[\ x { 1 f 300 }-\ x { 1 f 5 ff }]/u '
$ clean _ text=preg _ replace($ regex symbols,''$ clean _ text);
//Match Transport And Map Symbols
$ regex transport='/[\ x { 1 f 680 }-\ x { 1 f 6 ff }]/u '
$ clean _ text=preg _ replace($ reg extransport,''$ clean _ text);
//Match Miscellaneous Symbols
$ regex misc='/[\ x { 2600 }-\ x { 26ff }]/u '
$ clean _ text=preg _ replace($ regex misc,''$ clean _ text);
//Match Dingbats
$ regexdingbats='/[\ x { 2700 }-\ x { 27bf }]/u '
$ clean _ text=preg _ replace($ regex dingbats,''$ clean _ text);
Return $ clean _ text
}方法2:
preg _ replace('/[\ x { 1 f 600 }-\ x { 1 f 64 f } \ x { 1 f 300 }-\ x { 1 f 5 f f } \ x {)
//emoji表情过滤
Function filterEmoji($str){
$ str=preg _ replace _ callback ('/。/u '
Function (array $match) {
Return strlen($match[0])=4?美元MATCH[0];
},
$ str);
Return $ str
}