【发布时间】:2011-01-08 21:38:39
【问题描述】:
我想用除 div 之外的特定字符串替换 som 字符。 这是我的 str_replace :
// smileys
$in = array(
':)',
':D',
':o',
':p',
':(',
';)',
'xD',
'^^',
);
$out = array(
'<img alt=":)" style="padding-left:3px;" src="img/emoticons/emoticon_smile.png" />',
'<img alt=":D" style="padding-left:3px;" src="img/emoticons/emoticon_happy.png" />',
'<img alt=":o" style="padding-left:3px;" src="img/emoticons/emoticon_surprised.png" />',
'<img alt=":p" style="padding-left:3px;" src="img/emoticons/emoticon_tongue.png" />',
'<img alt=":(" style="padding-left:3px;" src="img/emoticons/emoticon_unhappy.png" />',
'<img alt=";)" style="padding-left:3px;" src="img/emoticons/emoticon_wink.png" />',
'<img alt="xD" style="padding-left:3px;" src="img/emoticons/emoticon_evilgrin.png" />',
'<img alt="^^" style="padding-left:3px;" src="img/emoticons/emoticon_happy.png" />'
);
$text = str_replace($in, $out, $text);
var $text 可以有<div class="code-geshi"></div>,但我不希望用于笑脸的 str_replace 进入。
我该怎么做?
谢谢:)
PS:对不起我的英语不好......
【问题讨论】:
-
如果
$text包含标记,您应该使用DOM parser,并且只在文档的文本节点上运行str_replace,以防止意外替换元素属性。
标签: php str-replace