示例#1
0
function utf8_bytes_to_hex($str)
{
    mb_internal_encoding('UTF-8');
    $out = array();
    while (strlen($str)) {
        $out[] = utf8_bytes_to_uni_hex(mb_substr($str, 0, 1));
        $str = mb_substr($str, 1);
    }
    return implode('-', $out);
}
示例#2
0
#
$names = array();
$vars = array();
foreach ($obj as $row) {
    if (!strlen($row['emoji'])) {
        foreach ($row['aliases'] as $alias) {
            $names['_'][] = $alias;
        }
        continue;
    }
    $uni = $row['emoji'];
    $chars = preg_split('/(?<!^)(?!$)/u', $uni);
    $unis_all = array();
    $unis_basic = array();
    foreach ($chars as $char) {
        $uni = utf8_bytes_to_uni_hex($char);
        $unis_all[] = $uni;
        if ($uni !== 'fe0f') {
            $unis_basic[] = $uni;
        }
    }
    $simple_basic = implode('-', $unis_basic);
    $simple_full = implode('-', $unis_all);
    #
    # variation?
    #
    if ($simple_basic !== $simple_full) {
        $vars[$simple_basic] = array($simple_full);
    } else {
        if (count($old_vars[$simple_basic])) {
            $vars[$simple_basic] = $old_vars[$simple_basic];