PHP-emoji 이모티콘 처리

666 단어
MySQL의 UTF8 인코딩은 문자마다 최대 3바이트만 지원하지만 emoji는 4바이트로 직접 저장할 수 없기 때문에 emoji를 변환해야 합니다.
여기에 4 바이트의utf8 인코딩을 xxxxx로 바꾸는 것을 제공합니다.지원 방법:
$content = preg_replace_callback('/[\x{010000}-\x{10ffff}]/u', function($v){
    return ''.current(unpack('N',iconv('UTF-8', 'UCS-4', $v[0]))).';';
}, $content);

디코딩도 간단하니 거꾸로 하면 된다
$content = preg_replace_callback('/(\d+);/', function($v){
    if ($v[1] >= 0x10000 && $v[1] <= 0x10ffff) {
        return iconv('UCS-4', 'UTF-8', pack('N',$v[1]));
    }
    return $v[0];
}, $content);

좋은 웹페이지 즐겨찾기