php - 如何使用 htmlspecialchars 但只允许特定的 HTML 代码通过而不进行转换?

标签 php htmlspecialchars

这是我的代码行,效果很好:

$content = htmlspecialchars($_POST['content'], ENT_QUOTES);

但我想做的是只允许某些类型的 HTML 代码通过而不进行转换。这是我希望通过的 HTML 代码列表:

<pre> </pre>
<b> </b>
<em> </em>
<u> </u>
<ul> </ul>
<li> </li>
<ol> </ol>

在我进行的过程中,我还希望以后能够在我想到的时候添加更多的 HTML。有人可以帮我修改上面的代码,让上面指定的 HTML 代码列表可以通过而不被转换吗?

最佳答案

我想你可以在事后这样做:

// $str is the result of htmlspecialchars()
preg_replace('#&lt;(/?(?:pre|b|em|u|ul|li|ol))&gt;#', '<\1>', $str);

它允许 <xx> 的编码版本和 </xx>其中 xx在一组受控的允许标签中。

关于php - 如何使用 htmlspecialchars 但只允许特定的 HTML 代码通过而不进行转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12819804/

相关文章:

php - SQLSTATE[42S01] : Base table or view already exists: 1050 Table 'weee_tax' already exists, 查询为

php - 如何在php中显示用户信息?

javascript - 我需要在输入字段中转义 html 输出吗?

php - 为什么 htmlspecialchars 在表单发布的 'PHP_SELF' 上工作,而不在 'REQUEST_URI' 上工作?

javascript - 当网站访问者手动更改 URL 时,如何根据 URL 设置 Cookie

php - 在文件之间传递 PHP 变量并将变量插入 SQL 表

PHP - PDO 从 _post 变量中选择语句

php - 将 html 字符转换回 Flash 中的文本 - AS3

javascript - 我应该在哪里嵌入 htmlspecialchars 以及为什么?

mysql - 在 CakePHP 中保存数据时使用 mysql_real_escape_string 和 htmlspecialchars 的最佳方法是什么?