2016-08-30 56 views
1

Я использую библиотеку twemoji, чтобы отображать смайлик на веб-странице.Как я могу конвертировать ud83d ude1b, чтобы показать emoji?

Я храню коды вроде "\ud83d\ude1b \ud83d\ude1b,hi" в сообщениях в моей базе данных, и теперь мне нужно отобразить соответствующие эможи на моей веб-странице.

Я использую PHP скрипт для преобразования "\u1F603" в Emoji: -,

$text = "This is fun \u1f602! \u1f1e8 "; 
$html = preg_replace("/\\\\u([0-9A-F]{2,5})/i", "&#x$1;", $text); 
echo $html; 

Тогда я использую twemoji разобрать тело и заменить его иконки Emoji: -

window.onload = function() { 

    // Set the size of the rendered Emojis 
    // This can be set to 16x16, 36x36, or 72x72 
    twemoji.size = '16x16'; 

    // Parse the document body and 
    // insert <img> tags in place of Unicode Emojis 
    codePoint = twemoji.convert.toCodePoint($('.com-text').html()); 
    twemoji.parse(document.body); 

} 

Как может Я конвертирую \ud83d\ude1b \ud83d\ude1b аналогичным образом с помощью PHP для отображения значков emoji на веб-странице?

+0

Если '\ u1F603' такое же, как' \ xF0 \ x9F \ x98 \ x83', чем '\ ud83d \ ude1b \ ud83d \ ude1b' также' \ xF0 \ x9F \ x98 \ x83'? – Justinas

+0

@ Justinas, извините, я отредактировал мой вопрос. – Saswat

+0

Ваш предоставленный код * не преобразует '\ u1F603' в' \ xF0 \ x9F \ x98 \ x83': http://sandbox.onlinephpfunctions.com/code/0de4bd662dbb0f0790ff36306707eedc23b868c6 – Justinas

ответ

0

Margin два SO вопросы (This и this) мне удалось сделать этот код (кажется, не работает с вашим примером):

echo preg_replace_callback(
    "/./", // for every symbol 
    function($matched) { 
     return '\x'.dechex(ord($matched[0])); 
    }, 
    json_decode('"\u1F603"') // convert Unicode to text 
); 
+0

В моем вопросе мой db хранит данные в суррогате UTF16 как '\ ud83d \ ude1b'. Мне нужно преобразовать это в эможи. – Saswat

Смежные вопросы