我想用除了div的特定字符串替换som字符。 这里是我的str_replace函数:在div标记中没有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);
的变量$文本可以有<div class="code-geshi"></div>
但我ddon't想str_replace函数的表情去 我怎样才能做到这一点?
谢谢:)
PS:对不起我的英文不好...
如果`$ text`包含标记你应该使用[DOM解析器](http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662#3577662),并且只在文档的文本节点上运行你的`str_replace`到防止意外更换元素属性。 – Gordon 2011-01-08 22:39:38