介绍
这篇文章主要介绍”PHP怎么处理字符中的emoji表情”,在日常操作中,相信很多人在PHP怎么处理字符中的emoji表情问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“PHP怎么处理字符中的emoji表情”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
utf - 8编码的emoji表情或者某些特殊字符占用4个字节.utf-8编码的常用中文字符占用3个字节。
三个PHP内置函数:
<强> mb_strlen 强>
<节>mixed mb_strlen (, string str 美元;[,string encoding 美元;=,mb_internal_encoding(),),),//,返回具有,encoding 编码的字符串,str 包含的字符数。多字节的字符被计为,1.//,如果给定的,encoding 无效则返回,假节>
<强> 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 的长度。节>
<强>判断字符串中是否含有emoji表情强>
函数如下:
<节>function haveEmojiChar (str) {,,, mbLen 美元;=,mb_strlen (str);,,,,,,,, strArr 美元;=,[];,,,,for ($小姐:=,0;,美元小姐:& lt;, mbLen;美元,美元我+ +),{,,,,,,,美元strArr [],=, mb_substr (str美元,,我,,1,,& # 39;utf - 8 # 39;),,,,,,,,, if (strlen ($ strArr [$ i]),在=,4),{,,,,,,,,,,,return ,真的,,,,,,,,,},,,,},,,,,,,,return 假;}节>
<强>移除字符串中的emoji表情强>
函数如下:
<节>function removeEmojiChar (str) {,,, mbLen 美元;=,mb_strlen (str);,,,,,,,, strArr 美元;=,[];,,,,for ($小姐:=,0;,美元小姐:& lt;, mbLen;美元,美元我+ +),{,,,,,,,mbSubstr 美元;=,mb_substr (str美元,,我,,1,,& # 39;utf - 8 # 39;),,,,,,,,, if (strlen (mbSubstr美元),祝辞=,4),{,,,,,,,,,,,还是,,,,,,,,,},,,,,,,,美元strArr [],=, mbSubstr美元;,,,,},,,,,,,,return 内爆(& # 39;& # 39;,,strArr美元);}节>
含有emoji表情的字符串在MySQL中的储存
MySQL中使用utf8mb4字符集。
PHP对字符串进行base64编码,从数据库中取出时再对字符串进行解码。
直接移除字符串中的emoji表情(该方法简单粗暴)