PHP处理字符中的emoji表情

举报
lxw1844912514 发表于 2022/03/27 01:49:10 2022/03/27
1.2k+ 0 0
【摘要】 目录 判断字符串中是否含有 emoji 表情移除字符串中的 emoji 表情含有 emoji 表情的字符串在 MySQL 中的储存 utf-8 编码的 emoji 表情或者某些特殊字符占用 4 个字节。utf-8 编码的常用中文字符占用 3 个字节。 判断字符串中是否含有 emoji 表情 三个 PHP 内置函数: mb_str...

目录

utf-8 编码的 emoji 表情或者某些特殊字符占用 4 个字节。utf-8 编码的常用中文字符占用 3 个字节。

判断字符串中是否含有 emoji 表情

三个 PHP 内置函数:

  • mb_strlen

      mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
      // 返回具有 encoding 编码的字符串 str 包含的字符数。 多字节的字符被计为 1。
      // 如果给定的 encoding 无效则返回 FALSE。
  
 
  • mb_substr

      string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )
      // 根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1。
      // mb_substr() 函数根据 start 和 length 参数返回 str 中指定的部分。
  
 
  • strlen

      int strlen ( string $string )
      // 返回给定的字符串 string 的长度。
  
 

函数如下:


      function haveEmojiChar($str)
      {
         $mbLen = mb_strlen($str);
         $strArr = [];
         for ($i = 0; $i < $mbLen; $i++) {
             $strArr[] = mb_substr($str, $i, 1, 'utf-8');
             if (strlen($strArr[$i]) >= 4) {
                 return true;
              }
          }
         return false;
      }
  
 

移除字符串中的 emoji 表情

函数如下:


      function removeEmojiChar($str)
      {
         $mbLen = mb_strlen($str);
         $strArr = [];
         for ($i = 0; $i < $mbLen; $i++) {
             $mbSubstr = mb_substr($str, $i, 1, 'utf-8');
             if (strlen($mbSubstr) >= 4) {
                 continue;
              }
             $strArr[] = $mbSubstr;
          }
         return implode('', $strArr);
      }
  
 

含有 emoji 表情的字符串在 MySQL 中的储存

  1. MySQL 中使用 utf8mb4 字符集。
  2. PHP 对字符串进行 base64 编码,从数据库中取出时再对字符串进行解码。
  3. 直接移除字符串中的 emoji 表情(该方法简单粗暴)

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/105809685

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。