因此,我從twitter api的查詢中獲得了json對象。在它的原始形式,文字是這樣的:從html中的Twitter呈現Twitter emojis的最佳方式是什麼?
"check out this emoji \ud83d\udc98"
我花了很多時間閱讀Unicode和它的格式,和我已經成功具有JSON Unicode作爲密鑰庫像這樣:
$emoji_dictionary = array(
'\ud83d\udd39'=> array(
'emoji-id'=> 'e-B76',
'codepoint'=> 'U+1F539',
'name'=> 'SMALL BLUE DIAMOND',
'twitter-id'=> '1f539'
),
'\ud83d\ude3f'=> array(
'emoji-id'=> 'e-34D',
'codepoint'=> 'U+1F63F',
'name'=> 'CRYING CAT FACE',
'twitter-id'=> '1f63f'
),
...
);
所以,現在我一直在試圖像地獄評價JSON unicode的,我從Twitter得到了作爲一個字符串,然後我就可以扔在這個功能:
function get_src($str) {
echo 'regex found:' . $str . '<br />';
return '<img class="twitter-emoji" src="https://abs.twimg.com/emoji/v1/72x72/' . $emoji_dictionary[$str]['twitter-id'] . '.png"/>';
}
哪個返回來自該表情符號的twitter的圖像,但我似乎無法正確使用PHP中的json數據preg_replace
。我有時會收到此錯誤:
preg_replace(): Compilation failed: PCRE does not support \L, \l, \N{name}, \U, or \u
我的preg_replace是這樣的(注意,這不工作):
$text = strval(json_encode($twitter_datum->text));
$pattern = "/\\\\u([a-f0-9]{4})/e";
$text = preg_replace($pattern, "get_src($1)", $text;
這種模式截獲 'd83d' 和 'dc98' 分開。
我試圖做什麼不可能?我只是想從"check out this emoji!! \ud83d\udc98"