使strip_tag将HTML替换为实体,而不是什么都不替换


Make strip_tags replace HTML with entities instead of nothing

我有这行代码:

$content = strip_tags($content, '<a><br><b><i>');

它的工作原理是应该的,但我需要用户能够输入代码,并将代码显示在网页上
例如,

<?php
echo 'Hey';
?>

不显示任何内容。我需要它来显示

&lt;?php
echo 'Hey';
?&gt;

例如。我应该使用什么函数来执行此操作?
编辑:为了澄清,用户看到了PHP代码,它只是被HTML实体替换了,所以服务器不会尝试运行它

尝试:

$content = htmlspecialchars(strip_tags($content, '<a><br><b><i>'));

$content = htmlentities(strip_tags($content, '<a><br><b><i>'), ENT_QUOTES);

参见htmlspecialcharshtmlentities