我有一个带有一些tekst丰富的字符串,其中有<b>
和<em>
以及字符串中的其他一些html标签。当然,用户也可以将<script>
或其他stuf放入字符串中,但这不是您想要的。我想将<
和>
替换为<
和>
,而不是<b>
和<em>
。
答案 0 :(得分:1)
看起来你想要一个负向前瞻:
$escaped = preg_replace("(</?(?!(?:b|em)\b))","<",$raw);
请注意,您无需将>
转义为>
,因为它本身没有任何意义。
答案 1 :(得分:1)
测试这个
$notecomments=" <b> <em> <sf> <script>";
$output=preg_replace_callback(array("#<(.*?)>#"),function($matches){
switch($matches[1]){
case 'b':
case 'em':
return $matches[0];
break;
default:
return "<".$matches[1].">";
}
},' '.$notecomments.' ');
print_r($output);
输出:
<b> <em> <sf> <script>
答案 2 :(得分:0)
或许strip_tags更适合这个:
echo strip_tags($text, '<b><em>');