我们的用户希望能够输入
<p>some text goes here.</p>
保存到数据库,然后按原样输出到屏幕,即浏览器呈现<p>
标签而不实际显示<p>
标签。
同时不影响用户输入的现有数据库生成的页面
<p>some text goes here.</p>
这可能吗?
“客户永远是对的”的一个例子。我有选择吗?不,这是他们想要的东西,因为某些原因超出了我。
答案 0 :(得分:2)
我不确定你要完成什么。如果您希望浏览器在显示标记时呈现标记,则可以使用html_entity_decode
:
echo html_entity_decode( "<p>some text goes here.</p> ");
echo html_entity_decode( "<p>some text goes here.</p> ");
如果没有,那么您可以将字符串传递给htmlspecialchars
echo htmlspecialchars( "<p>some text goes here.</p> ");
echo htmlspecialchars( "<p>some text goes here.</p> ");
答案 1 :(得分:0)
看看htmlspecialchars()
。它将为您排除任何HTML字符。
答案 2 :(得分:0)
您是否查看了htmlentities
和strip_tags
答案 3 :(得分:0)
您可以在代码中存储您选择的编码更改的日期,然后您可以使用数据库中每个条目的时间戳(我假设您有一个'created'/'modified'/'timestamp'或类似的字段?)来决定在输出内容时应该使用哪种行为。
或者,您可以编写一个脚本来将数据库中的旧条目更新为新格式(例如,在每个格式上调用htmlspecialchars()
或html_entity_decode()
)。