php - 在 PHP 中使用 htmlentities() 函数时防止浏览呈现 HTML

标签 php html

我想在浏览器上显示 PHP echo 语句的输出。结果是输出 htmlentities() PHP的功能。

$str = "A 'quote' is <b>bold</b>";
// Expected Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo "<textarea>".htmlentities($str)."</textarea>";
// Expected Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo "<textarea>".htmlentities($str, ENT_QUOTES)."</textarea>";

显然,它给了我

A 'quote' is <b>bold</b>在我的里面 <textarea>

请指教。

最佳答案

对其进行两次转义。

echo "<textarea>".htmlentities(htmlentities($str))."</textarea>";

htmlentities() 的目的是防止 HTML 按原样解析。但是你实际上想按原样显示 HTML 实体,所以你需要依次重新转义它们。

关于php - 在 PHP 中使用 htmlentities() 函数时防止浏览呈现 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848664/

相关文章:

菲律宾比索用户可以在文件中写入数据,我包含该文件

css - 在 HTML5 中预加载音频需要时间

javascript - onfocus 下拉菜单需要双击才能显示菜单

php - 如何在 echo 中放置开始和结束 PHP 标记?

javascript - 禁用提交按钮,同时仍允许 PHP 脚本在提交表单时运行

php - 在 mysql 中插入一个 PHP false

jquery - 使用 jquery 添加图标

javascript - 返回 false 时 Onsubmit 仍然提交

php - 清理密码的正确方法是什么?

php - 在预排序数组中查找给定值的索引