array( ), 'kaomoji' => array( ), 'unified_to_docomo' => array( ), 'unified_to_kddi' => array( ), 'unified_to_softbank' => array( ), 'unified_to_google' => array( ), 'docomo_to_unified' => array( ), 'kddi_to_unified' => array( ), 'softbank_to_unified' => array( ), 'google_to_unified' => array( ), 'unified_to_html' => array( ), 'prefixes' => array( ), 'unified_rx' => '!()(\\xEF\\xB8\\x8E|\\xEF\\xB8\\x8F)?!', ); $GLOBALS['emoji_maps']['html_to_unified'] = array_flip($GLOBALS['emoji_maps']['unified_to_html']); # # functions to convert incoming data into the unified format # function emoji_docomo_to_unified( $text){ return emoji_convert($text, 'docomo_to_unified'); } function emoji_kddi_to_unified( $text){ return emoji_convert($text, 'kddi_to_unified'); } function emoji_softbank_to_unified( $text){ return emoji_convert($text, 'softbank_to_unified'); } function emoji_google_to_unified( $text){ return emoji_convert($text, 'google_to_unified'); } # # functions to convert unified data into an outgoing format # function emoji_unified_to_docomo( $text){ return emoji_convert($text, 'unified_to_docomo'); } function emoji_unified_to_kddi( $text){ return emoji_convert($text, 'unified_to_kddi'); } function emoji_unified_to_softbank( $text){ return emoji_convert($text, 'unified_to_softbank'); } function emoji_unified_to_google( $text){ return emoji_convert($text, 'unified_to_google'); } # # HTML transformation # function emoji_unified_to_html($text){ return preg_replace_callback($GLOBALS['emoji_maps']['unified_rx'], function($m){ if (isset($m[2]) && $m[2] == "\xEF\xB8\x8E") return $m[0]; $cp = $GLOBALS['emoji_maps']['unified_to_html'][$m[1]]; return ""; }, $text); } function emoji_html_to_unified($text){ return preg_replace_callback("!!", function($m){ if (isset($GLOBALS['emoji_maps']['html_to_unified'][$m[1]])){ return $GLOBALS['emoji_maps']['html_to_unified'][$m[1]]; } return $m[0]; }, $text); } function emoji_convert($text, $map){ return str_replace(array_keys($GLOBALS['emoji_maps'][$map]), $GLOBALS['emoji_maps'][$map], $text); } function emoji_get_name($unified_cp){ return $GLOBALS['emoji_maps']['names'][$unified_cp] ? $GLOBALS['emoji_maps']['names'][$unified_cp] : '?'; } function emoji_contains_emoji($text){ $count = 0; str_replace($GLOBALS['emoji_maps']['prefixes'], '00', $text, $count); return $count > 0; }