我有一个简单的问题:(我需要用相应的笑脸图像替换文本笑脸。好的..。这并不是很复杂,但现在我只需要替换HTML标记之外的笑脸。简短的示例:
文本:
Thats a good example :/ .. with a <a href="http://www.foobar.com">link</a> inside.
我想把":/“替换成这个笑脸的图像...
好的,怎么做才是最好的呢?
发布于 2010-06-07 03:40:11
我不会尝试创建一些超级脚本,但考虑一下……笑脸总是被空格包围着。因此,str将“:/”替换为笑脸。你可能会说“在句子的末尾加上一个笑脸怎么样(最常用的地方)”。只需检查潜在笑脸符号的左边或右边至少有一个空格。
使用上面的脚本:
$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数组生成数组。
发布于 2010-06-07 04:00:32
为什么你不试着在你的笑脸文字周围使用一些特殊的字符,像这样-:/-这将使你的笑脸文字变得独特且易于识别
发布于 2010-05-24 17:23:11
我不知道最好的方法是什么,只知道我会怎么做。
构建一个以笑脸代码为键、以链接为值的数组。使用str_replace。将一个键数组(笑脸代码)作为“针”传递,并作为“替换”值数组传递。
例如,假设您有如下内容:
$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慢。
https://stackoverflow.com/questions/2895878
复制相似问题