//字节转Emoji表情
function bytes_to_emoji($cp)
{
if ($cp > 0x10000){ # 4 bytes
return chr(0xF0 | (($cp & 0x1C0000) >> 18)).chr(0x80 | (($cp & 0x3F000) >> 12)).chr(0x80 | (($cp & 0xFC0) >> 6)).chr(0x80 | ($cp & 0x3F));
}else if ($cp > 0x800){ # 3 bytes
return chr(0xE0 | (($cp & 0xF000) >> 12)).chr(0x80 | (($cp & 0xFC0) >> 6)).chr(0x80 | ($cp & 0x3F));
}else if ($cp > 0x80){ # 2 bytes
return chr(0xC0 | (($cp & 0x7C0) >> 6)).chr(0x80 | ($cp & 0x3F));
}else{ # 1 byte
return chr($cp);
}
}

调用:

$content = "仙人掌:".$this->bytes_to_emoji(0x1F335);

说明:其实就是将代码表中的U+替换为0x,再调用emoji方法进行转换,将转换后的结果放在文本消息的Content中,返回给用户就会显示emoji表情了。

代码表:

公众帐号如何向用户发送emoji表情(php版,附emoji编码表)-LMLPHP

公众帐号如何向用户发送emoji表情(php版,附emoji编码表)-LMLPHP

公众帐号如何向用户发送emoji表情(php版,附emoji编码表)-LMLPHP

公众帐号如何向用户发送emoji表情(php版,附emoji编码表)-LMLPHP

公众帐号如何向用户发送emoji表情(php版,附emoji编码表)-LMLPHP

 
05-11 22:02