php preg_替换为异常

php preg_替换为异常,php,Php,我有一个带有一些tekst enrichement的字符串,字符串中有和以及一些其他html标记。当然,用户也可以将或其他stuf放入字符串中,但这不是您想要的。我想用和替换和,但不是和看起来你想要一个负面展望: $escaped = preg_replace("(</?(?!(?:b|em)\b))","&lt;",$raw); $escape=preg_replace((测试此 $notecomments=" <b> <em> <sf>

我有一个带有一些tekst enrichement的字符串,字符串中有
以及一些其他html标记。当然,用户也可以将
或其他stuf放入字符串中,但这不是您想要的。我想用
替换
,但不是

看起来你想要一个负面展望:

$escaped = preg_replace("(</?(?!(?:b|em)\b))","&lt;",$raw);
$escape=preg_replace((测试此

  $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 "&lt;".$matches[1]."&gt;";

}
},' '.$notecomments.' ');
  print_r($output);
$notecoments=”“;
$output=preg_replace_回调(数组(“###”)函数($matches){
开关($matches[1]){
案例“b”:
“他们”一案:
返回$matches[0];
打破
违约:
返回“$matches[1]”;
}
},“.$notecomments.”);
打印(输出);
输出:

   <b> <em> &lt;sf&gt; &lt;script&gt; 
sf脚本
也许更适合这种情况:

echo strip_tags($text, '<b><em>');
echo strip_标签($text,”);

用这个字符串(“Dus&dustest”)测试了它,但它不起作用,也取代了原来的解决方案。这将是一个完美的解决方案,因为它非常轻。你知道你的代码有什么问题吗?试着在
之后添加
/?
是的!就是这样!小小的调整,我删除了\B,在em之后添加了/B和/em