如何从输出中删除 html 标签但保持格式
Posted
技术标签:
【中文标题】如何从输出中删除 html 标签但保持格式【英文标题】:How to remove html tags from output but keeping the format 【发布时间】:2015-12-07 01:52:33 【问题描述】:我正在使用 mysql 数据库并防止我使用的 SQL 注入:
$entities_correction = htmlspecialchars($Query, ENT_COMPAT, 'UTF-8');
但是,当我尝试向用户显示信息时,我得到了这个:
<p><strong>asdasdasdasdasd</strong></p><p><em>asdasdasdasd</em></p><ol><li><em>1</em></li><li><strong>2</strong><ol><li><strong>asdasdasd</strong></li></ol></li></ol><p><strong>adasbui</strong></p>
带有标签和所有这些东西。如何删除这些标签并在向用户显示时使其看起来像这样?
预期输出:
asdasdasdasdasd
asdasdasdasd
-
1
2
- asdasdasd
adasbui
【问题讨论】:
你如何向用户展示信息? 我正在使用这个: 打印$AsignacionTareas["TareaDescripcion"]
不带htmlspecialchars_decode
并向我们展示你得到了什么。复制源视图的结果,而不是网页plz。
看看这个线程 How can I prevent SQL-injection in php? 了解你应该如何防止 SQL 注入,htmlspecialchars
是不可以的,尤其是只有 ENT_COMPAT,
..
htmlspecialchars
不会阻止 SQL 注入,因为它也不打算这样做。
【参考方案1】:
您可以简单地使用html_entity_decode
html_entity_decode() 函数将 HTML 实体转换为字符。
请参考以下链接: http://www.w3schools.com/php/func_string_html_entity_decode.asp http://php.net/manual/en/function.html-entity-decode.php
【讨论】:
对不起,我没有提到...我已经在使用 htmlspecialchars_decode 但仍然无法使用【参考方案2】:出于这个原因,您必须使用htmlspecialchars_decode()
。只需将数据传递给它。
更多信息:http://php.net/manual/en/function.htmlspecialchars-decode.php
【讨论】:
以上是关于如何从输出中删除 html 标签但保持格式的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法从 JavaScript 中的字符串中删除 html 标签? [复制]