/** |
*方法一: |
*匹配中英文、以及数字等过滤掉emoji |
*最后字符串中只剩下中英文、以及数字 |
*/ |
function delEmomji( $str ){ |
|
$pattern = '/[\w\x{4e00}-\x{9fa5}]+/u' ; |
|
preg_match_all( $pattern , $str , $matchs ); |
|
//遍历匹配结果 |
$result = '' ; |
|
foreach ( $matchs [0] as $value ){ |
|
$result .= $value ; |
|
} |
|
return $result ; |
} |
/** |
*方法二: |
* 直接删除法 |
* 由于单个emoji字符的长度为4个字节,而我们使用的MySQL数据的utf-8编码最长只支持3字节字符, |
* 所以插入emoji表情时会报错,最终的解决方案是将MySQL的编码修改为utf8mb4。 |
*/ |
function filterEmoji( $str ) |
{ |
$str = preg_replace_callback( |
'/./u' , |
function ( array $match ) { |
return strlen ( $match [0]) >= 4 ? '' : $match [0]; |
}, |
$str ); |
return $str ; |
} |
by: 发表于:2017-10-20 14:20:21 顶(1) | 踩(0) 回复
??
回复评论