将标记转换为htmlentities时跳过指定的标记

时间:2014-06-29 09:41:10

标签: php html

代码

$string="<big>Like this,</big><b>This is </b><i>Mountain picture</i><var>I love it/var>";
$strconverted=htmlentities($string);
  

我想将所有代码转换为html实体,但保留 b i 代码

2 个答案:

答案 0 :(得分:2)

为什么你使用htmlentities?如果仅删除html标记,则可以使用strip_tags()

strip_tags( $string, '<b><i>' );

答案 1 :(得分:0)

调用htmlentities()后,您可以将这些代码转换回真实代码:

$strconverted = str_replace(array('&lt;b&gt;', '&lt;/b&gt;', '&lt;i&gt;', '&lt;/i&gt;'), array('<b>', '</b>', '<i>', '</i>'), $strconverted);

所以你的代码看起来像这样:

$string="<big>Like this,</big><b>This is </b><i>Mountain picture</i><var>I love it/var>";
$strconverted=htmlentities($string);

$strconverted = str_replace(array('&lt;b&gt;', '&lt;/b&gt;', '&lt;i&gt;', '&lt;/i&gt;'), array('<b>', '</b>', '<i>', '</i>'), $strconverted);