1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > emoji昵称php php过滤微信用户昵称emoji表情方法汇总 - 旗云号

emoji昵称php php过滤微信用户昵称emoji表情方法汇总 - 旗云号

时间:2020-01-09 03:39:18

相关推荐

emoji昵称php php过滤微信用户昵称emoji表情方法汇总 - 旗云号

php过滤微信用户昵称emoji表情方法汇总

微信用户昵称带emoji表情的话,保存数据库会报错,解决办法有两种:一、修改数据库表和字段的字符集为utf8mb4;二、过滤emoji表情字符;根据自己的需求来选择。

这里主要介绍第二种方法,PHP过滤昵称表情这里主要有如下四种:

public function test() {

//$str = "爱心\uD83E\uDD14";

$str = "爱心爱心?";

// echo $this->emoji_encode($str);

// echo $this->filterNickname($str);

// echo $this->filterEmoji($str);

echo $this->emoji_encode(json_encode(json_decode($str)))."|";

echo $this->filterNickname(json_encode($str))."|";

echo $this->filterEmoji(json_encode($str))."|";

}

function filterEmoji($str)

{

$str = preg_replace_callback( '/./u',

function (array $match) {

return strlen($match[0]) >= 4 ? '' : $match[0];

},

$str);

return $str;

}

private function emoji_encode($nickname){

$strEncode = '';

$length = mb_strlen($nickname,'utf-8');

for ($i=0; $i < $length; $i++) { $_tmpStr = mb_substr($nickname,$i,1,'utf-8'); if(strlen($_tmpStr) >= 4){

$strEncode .= '[[EMOJI:'.rawurlencode($_tmpStr).']]';

}else{

$strEncode .= $_tmpStr;

}

}

return $strEncode;

}

function filterNickname($nickname) {

$nickname = preg_replace('/[\x{1F600}-\x{1F64F}]/u', '', $nickname);

$nickname = preg_replace('/[\x{1F300}-\x{1F5FF}]/u', '', $nickname);

$nickname = preg_replace('/[\x{1F680}-\x{1F6FF}]/u', '', $nickname);

$nickname = preg_replace('/[\x{2600}-\x{26FF}]/u', '', $nickname);

$nickname = preg_replace('/[\x{2700}-\x{27BF}]/u', '', $nickname);

$nickname = str_replace(array('"','\''), '', $nickname);

return addslashes(trim($nickname));

}

旗云号 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:php过滤微信用户昵称emoji表情方法汇总

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。