function _emoji_convert($matches) { $o_code = $matches[1]; switch ($GLOBALS['__Framework']['carrier']) { case 'i': case 'w': case 'em': $carrier = 'i'; break; case 's': $carrier = 's'; break; case 'e': $carrier = 'e'; break; default: $carrier = null; break; } $emoji_code = OpenPNE_KtaiEmoji::getInstance(); $c_emoji = $emoji_code->convert_emoji($o_code, $carrier); if ($c_emoji) { return $c_emoji; } else { return '〓'; } }
public static function convertSoftBankEmojiToOpenPNEFormat($bin) { $sjis1 = ord($bin[0]); $sjis2 = ord($bin[1]); $web1 = $web2 = 0; switch ($sjis1) { case 0xf9: if ($sjis2 >= 0x41 && $sjis2 <= 0x7e) { $web1 = ord('G'); $web2 = $sjis2 - 0x20; } elseif ($sjis2 >= 0x80 && $sjis2 <= 0x9b) { $web1 = ord('G'); $web2 = $sjis2 - 0x21; } elseif ($sjis2 >= 0xa1 && $sjis2 <= 0xed) { $web1 = ord('O'); $web2 = $sjis2 - 0x80; } break; case 0xf7: if ($sjis2 >= 0x41 && $sjis2 <= 0x7e) { $web1 = ord('E'); $web2 = $sjis2 - 0x20; } elseif ($sjis2 >= 0x80 && $sjis2 <= 0x9b) { $web1 = ord('E'); $web2 = $sjis2 - 0x21; } elseif ($sjis2 >= 0xa1 && $sjis2 <= 0xf3) { $web1 = ord('F'); $web2 = $sjis2 - 0x80; } break; case 0xfb: if ($sjis2 >= 0x41 && $sjis2 <= 0x7e) { $web1 = ord('P'); $web2 = $sjis2 - 0x20; } elseif ($sjis2 >= 0x80 && $sjis2 <= 0x8d) { $web1 = ord('P'); $web2 = $sjis2 - 0x21; } elseif ($sjis2 >= 0xa1 && $sjis2 <= 0xd7) { $web1 = ord('Q'); $web2 = $sjis2 - 0x80; } break; default: return ''; } $emoji_code = OpenPNE_KtaiEmoji::getInstance(); $code = $emoji_code->get_emoji_code4emoji(pack('c5', 0x1b, 0x24, $web1, $web2, 0xf), 's'); return '[' . $code . ']'; }
protected static function convertEmojiCallback($matches) { $o_code = $matches[1]; $c_carrier = sfConfig::get('op_opensocial_api_emoji_carrier', 'i'); $o_carrier = $o_code[0]; $o_id = substr($o_code, 2); $ktaiEmoji = OpenPNE_KtaiEmoji::getInstance(); if ($c_carrier == $o_carrier) { $emojiString = $ktaiEmoji->convert_emoji($o_code, $c_carrier); if ($emojiString) { if ('i' === $c_carrier) { return mb_convert_encoding($emojiString, 'UTF-8', 'SJIS-win'); } return $emojiString; } } elseif (isset($ktaiEmoji->relation_list[$o_carrier][$c_carrier][$o_id])) { return self::convertEmoji($ktaiEmoji->relation_list[$o_carrier][$c_carrier][$o_id]); } return '〓'; }
public static function convertSoftBankEmojiToOpenPNEFormat($bin) { $sjis1 = ord($bin[0]); $sjis2 = ord($bin[1]); $codepoint = 0; switch ($sjis1) { case 0xf9: if ($sjis2 >= 0x41 && $sjis2 <= 0x7e) { $codepoint = 0xe000 + $sjis2 - 0x40; } elseif ($sjis2 >= 0x80 && $sjis2 <= 0x9b) { $codepoint = 0xe000 + $sjis2 - 0x41; } elseif ($sjis2 >= 0xa1 && $sjis2 <= 0xed) { $codepoint = 0xe300 + $sjis2 - 0xa0; } break; case 0xf7: if ($sjis2 >= 0x41 && $sjis2 <= 0x7e) { $codepoint = 0xe100 + $sjis2 - 0x40; } elseif ($sjis2 >= 0x80 && $sjis2 <= 0x9b) { $codepoint = 0xe100 + $sjis2 - 0x41; } elseif ($sjis2 >= 0xa1 && $sjis2 <= 0xf3) { $codepoint = 0xe200 + $sjis2 - 0xa0; } break; case 0xfb: if ($sjis2 >= 0x41 && $sjis2 <= 0x7e) { $codepoint = 0xe400 + $sjis2 - 0x40; } elseif ($sjis2 >= 0x80 && $sjis2 <= 0x8d) { $codepoint = 0xe400 + $sjis2 - 0x41; } elseif ($sjis2 >= 0xa1 && $sjis2 <= 0xd7) { $codepoint = 0xe500 + $sjis2 - 0xa0; } break; default: return ''; } $emoji_code = OpenPNE_KtaiEmoji::getInstance(); $code = $emoji_code->get_emoji_code4emoji(sprintf('&#x%04X;', $codepoint), 's'); return '[' . $code . ']'; }