我想用除了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