如何将\ ud83d \ ude1b转换为显示表情符号?

时间:2016-08-30 12:26:37

标签: php html

我正在使用twemoji库在网页中显示表情符号图片。

我将"\ud83d\ude1b \ud83d\ude1b,hi"等代码存储在我的数据库中的消息中,现在我需要在我的网页上显示相应的表情符号。

我正在使用PHP脚本将"\u1F603"转换为表情符号: - ,

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

然后我使用twemoji来解析身体并用表情符号图标替换它: -

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);

}

如何使用PHP以类似的方式转换\ud83d\ude1b \ud83d\ude1b以在网页中显示表情符号图标?

1 个答案:

答案 0 :(得分:0)

保证两个SO问题(Thisthis)我设法制作此代码(似乎不适用于您的示例):

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