当前位置 : 主页 > 网络编程 > PHP >

emoji表情 辅助函数

来源:互联网 收集:自由互联 发布时间:2021-06-28
emoji表情 辅助函数 * ---------------------------------------------------- * * utf8编码的数据库最多只能存储三个字节, emoji表情大部分都为4个字节(utf8mb4), 所以存储时会出错, * 为了在不修改数据库类
emoji表情 辅助函数
 
 * ----------------------------------------------------
 *
 * utf8编码的数据库最多只能存储三个字节, emoji表情大部分都为4个字节(utf8mb4), 所以存储时会出错,
 * 为了在不修改数据库类型的情况下不出现错误, 需将4个字节的数据剔除.
 *
 */

// 剔除emoji表情 (3个字节的emoji无法剔除, 比如讯飞输入法的emoji表情)
if (!function_exists('emoji_reject')) {
    function emoji_reject($text)
    {
        $len = mb_strlen($text);
        $new_text = '';
        for ($i = 0; $i < $len; $i++) {
            $word = mb_substr($text, $i, 1);
            if (strlen($word) <= 3) {
                $new_text .= $word;
            }
        }
        return $new_text;
    }
}

// 是否包含emoji表情
if (!function_exists('emoji_test')) {
    function emoji_test($text)
    {
        $len = mb_strlen($text);
        for ($i = 0; $i < $len; $i++) {
            $word = mb_substr($text, $i, 1);
            if (strlen($word) > 3) {
                return true;
            }
        }
        return false;
    }
}

// 输出emoji表情的16进制字符串
if (!function_exists('emoji_print')) {
    function emoji_print($emoji)
    {
        $len = mb_strlen($emoji);
        $txt = '';
        for ($i = 0; $i < $len; $i++) {
            $hex = mb_substr($emoji, $i, 1);
            $txt .= strtolower(str_replace('%', '\x', urlencode($hex))) . "\r\n";
        }
        echo $txt;
    }
}
网友评论