首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组中带有表情符号的issus

数组中带有表情符号的issus
EN

Stack Overflow用户
提问于 2015-03-16 21:53:48
回答 1查看 292关注 0票数 2

在这段代码中,当我使用":-)“时,表情符号不会显示在输出中。

但当使用"1f60a“或"1f60c”或"e252“表情符号时。有什么问题吗?

代码语言:javascript
运行
复制
<?php
    $emoji_url = "http://coremobile.ir/images_smileys";
    $emoji_style = "";
    $emoji_code = array(
        ":-)",
        "1f60a",
        "1f60c",
        "e252"
    );

    $emoji_img = array(
        '<img src="'.$emoji_url.'/1f60a.png" '.$emoji_style.'>',
        '<img src="'.$emoji_url.'/1f60a.png" '.$emoji_style.'>',
        '<img src="'.$emoji_url.'/1f60c.png" '.$emoji_style.'>',
        '<img src="'.$emoji_url.'/e252.png" '.$emoji_style.'>'
    );

    $ret = 'This Test :-)  1f60a';
    $ret = str_replace($emoji_code, $emoji_img, $ret);
    echo $ret;
?>
EN

回答 1

Stack Overflow用户

发布于 2015-03-16 21:57:52

这对你来说应该是可行的:

(只需使用strtr()而不是str_replace(),这样它就不会多次遍历字符串)

代码语言:javascript
运行
复制
$ret = strtr($ret, array_combine($emoji_code, $emoji_img));

输出:

此测试

另一个不起作用,因为它替换了第一次替换的每一次匹配,然后第二次替换,以此类推。

0已替换:

代码语言:javascript
运行
复制
This Test :-)  1f60a
        //^^^ match

首先更换:

代码语言:javascript
运行
复制
This Test <img src="http://coremobile.ir/images_smileys/1f60a.png" > 1f60a
                                                      //^^^^^ match  ^^^^^ match

第二次更换:

代码语言:javascript
运行
复制
This Test <img src="http://coremobile.ir/images_smileys/<img src="http://coremobile.ir/images_smileys/1f60a.png" >.png" >  <img src="http://coremobile.ir/images_smileys/1f60a.png" >   
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29078545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档