-3
我收到一個字符串是這樣的:轉換表情符號,英文含義PHP
" hello world "
其中我轉換使用pregmatch:
preg_match_all('/([0-9#][\x{20E3}])|[\x{00ae}\x{00a9}\x{203C}\x{2047}\x{2048}\x{2049}\x{3030}\x{303D}\x{2139}\x{2122}\x{3297}\x{3299}][\x{FE00}-\x{FEFF}]?|[\x{2190}-\x{21FF}][\x{FE00}-\x{FEFF}]?|[\x{2300}-\x{23FF}][\x{FE00}-\x{FEFF}]?|[\x{2460}-\x{24FF}][\x{FE00}-\x{FEFF}]?|[\x{25A0}-\x{25FF}][\x{FE00}-\x{FEFF}]?|[\x{2600}-\x{27BF}][\x{FE00}-\x{FEFF}]?|[\x{2900}-\x{297F}][\x{FE00}-\x{FEFF}]?|[\x{2B00}-\x{2BF0}][\x{FE00}-\x{FEFF}]?|[\x{1F000}-\x{1F6FF}][\x{FE00}-\x{FEFF}]?/u', $string, $emojis);
我得到這個:
"\ud83d\ude03 hello world \ud83d\ude43"
但我需要文字等效是這樣的:
":smiley: hello world :upside_down_face:"
這裏是我的英文含義資源: http://unicode.org/Public/emoji/6.0/emoji-test.txt
如何建立,將執行該轉換高效的PHP函數。
這是我迄今寫過的功能。短碼數組有大約1200個元素。
功能EMO($字符串) {
//Find Emojis In String
$emojis_cnt = preg_match_all('/([0-9#][\x{20E3}])|[\x{00ae}\x{00a9}\x{203C}\x{2047}\x{2048}\x{2049}\x{3030}\x{303D}\x{2139}\x{2122}\x{3297}\x{3299}][\x{FE00}-\x{FEFF}]?|[\x{2190}-\x{21FF}][\x{FE00}-\x{FEFF}]?|[\x{2300}-\x{23FF}][\x{FE00}-\x{FEFF}]?|[\x{2460}-\x{24FF}][\x{FE00}-\x{FEFF}]?|[\x{25A0}-\x{25FF}][\x{FE00}-\x{FEFF}]?|[\x{2600}-\x{27BF}][\x{FE00}-\x{FEFF}]?|[\x{2900}-\x{297F}][\x{FE00}-\x{FEFF}]?|[\x{2B00}-\x{2BF0}][\x{FE00}-\x{FEFF}]?|[\x{1F000}-\x{1F6FF}][\x{FE00}-\x{FEFF}]?/u', $string, $emojis);
// Load Emoji Text Short Codes Into Array
if ($emojis_cnt>0)
{
$arr_em=array();
$arr_em["1F9C0"]=":cheese:";
$arr_em["1F991"]=":squid:";
$arr_em["1F990"]=":shrimp:";
$arr_em["1F98F"]=":rhinoceros:";
$arr_em["1F98E"]=":lizard:";
$arr_em["1F98D"]=":gorilla:";
$arr_em["1F98C"]=":deer:";
$arr_em["1F98B"]=":butterfly:";
$arr_em["1F98A"]=":fox_face:";
$arr_em["1F989"]=":owl:";
$arr_em["1F988"]=":shark:";
$arr_em["1F987"]=":bat:";
$arr_em["1F986"]=":duck:";
$arr_em["1F985"]=":eagle:";
$arr_em["1F984"]=":unicorn:";
$arr_em["1F983"]=":turkey:";
$arr_em["1F982"]=":scorpion:";
$arr_em["1F981"]=":lion:";
$arr_em["1F980"]=":crab:";
$arr_em["1F95E"]=":pancakes:";
$arr_em["1F95D"]=":kiwi_fruit:";
$arr_em["1F95C"]=":peanuts:";
//This keeps going for 1200 array elements
//String replace Emojis with Text Short Codes
foreach ($emojis[0] as &$emoji)
{
$em_hex= dechex(mx_uniord($emoji));
$string = str_ireplace($emoji, " ".$arr_em[strtoupper($em_hex)]." ",$string);
}
}
return $string;
}
什麼你嘗試過迄今爲止的建設嗎? d你的功能,給我們看代碼。這不是自由軟件開發的平臺。 – Webdesigner
感謝您回覆Webdesigner。我添加了我的功能。我很欣賞這個提示。 – AjaX
這是一個好的開始,只是一個問題:到目前爲止工作的是什麼以及你需要哪些幫助 – Webdesigner