php简单过滤表情,有时候不想表情出现在名称或昵称中,对不是数据库不是utf8mb4的保存也不友好,那就过滤。emoji表情一般占4位字节。

  1. <?php
  2. //过滤表情
  3. public function filterEmoji($str, $rep = '□'){
  4. $str = preg_replace_callback(
  5. '/./u',
  6. function (array $match) use ($rep) {
  7. return strlen($match[0]) >= 4 ? $rep : $match[0];
  8. },
  9. $str
  10. );
  11. return $str;
  12. }

文章来源:https://www.weizhixi.com/user/index/article/id/87.html


附:php判断是否含有emoji表情

  1. <?php
  2. function have_special_char($str)
  3. {
  4. $length = mb_strlen($str);
  5. $array = [];
  6. for ($i=0; $i<$length; $i++) {
  7. $array[] = mb_substr($str, $i, 1, 'utf-8');
  8. if( strlen($array[$i]) >= 4 ){
  9. return true;
  10. }
  11. }
  12. return false;
  13. }

文章来源:https://www.cnblogs.com/zixuanfy/p/9635905.html