去除过滤emoji表情、判断是否包含emoji表情,输出emoji表情的16进制字符串;对于没有使用utf8mb4编码数据库的项目,如果存入4字节的emoji表情,数据库会报错,只能选择将4字节的字符剔除。
3个字节的emoji无法剔除, 比如讯飞输入法的emoji表情,正常的emoji表情都为4个字节,比如iOS的emoji表情
$text = emoji_reject($text);
if(emoji_test($text)){
}
echo emoji_print($emoji);
PHP与js的正则不同,是因为js使用的是ucs-2编码
PHP Sample
function emoji_test($text)
{
$emoji = "/[\u010000-\u10FFFF]/g"; // 4字节utf-16 = emoji
return preg_match($emoji, $text);
}
JavaScript Sample
function emoji_test(text)
{
var emoji = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; // 4字节utf-16 = emoji
return emoji.test(text);
}