首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML字符串CDATA中的笑脸替换

HTML字符串CDATA中的笑脸替换
EN

Stack Overflow用户
提问于 2010-05-24 17:12:07
回答 5查看 890关注 0票数 3

我有一个简单的问题:(我需要用相应的笑脸图像替换文本笑脸。好的..。这并不是很复杂,但现在我只需要替换HTML标记之外的笑脸。简短的示例:

文本:

Thats a good example :/ .. with a <a href="http://www.foobar.com">link</a> inside.

我想把":/“替换成这个笑脸的图像...

好的,怎么做才是最好的呢?

EN

回答 5

Stack Overflow用户

发布于 2010-06-07 03:40:11

我不会尝试创建一些超级脚本,但考虑一下……笑脸总是被空格包围着。因此,str将“:/”替换为笑脸。你可能会说“在句子的末尾加上一个笑脸怎么样(最常用的地方)”。只需检查潜在笑脸符号的左边或右边至少有一个空格。

使用上面的脚本:

代码语言:javascript
复制
$smiley_array = array(
    ":) " => "<a href...>",
    " :)" => "<a href...>",
    ":/ " => "<a href...>",
    " :/" => "<a href...>");
$codes = array_keys($smiley_array);
$links = array_values($smiley_array);
$str = str_replace($codes, $links, $str);

如果您不想输入两次所有内容,则可以从单个smiley数组生成数组。

票数 2
EN

Stack Overflow用户

发布于 2010-06-07 04:00:32

为什么你不试着在你的笑脸文字周围使用一些特殊的字符,像这样-:/-这将使你的笑脸文字变得独特且易于识别

票数 1
EN

Stack Overflow用户

发布于 2010-05-24 17:23:11

我不知道最好的方法是什么,只知道我会怎么做。

构建一个以笑脸代码为键、以链接为值的数组。使用str_replace。将一个键数组(笑脸代码)作为“针”传递,并作为“替换”值数组传递。

例如,假设您有如下内容:

代码语言:javascript
复制
$smiley_array = array(":)" => "<a href...>",
    ":(" => "<a href=....>");
$codes = array_keys($smiley_array);
$links = array_values($smiley_array);
$str = str_replace($codes, $links, $str);

编辑:以防这会意外地将其他实例替换为笑脸链接,您应该考虑对preg_replace使用正则表达式。显然,preg_replace比str_replace慢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2895878

复制
相关文章

相似问题

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