PHP MySql显示返回的内容没有被剥离的html标签

时间:2011-03-04 14:31:27

标签: php mysql html tags strip

我有一个SQL'Text'数据类型的列,里面有html标签内的内容,例如

somecontent:

  • one
  • 两个
...我希望mysql查询回显出数据库内容而不剥离html标签(出于安全原因,这可能由php完成,或者?)这样html代码将呈现如果你找到了我?目前它只是一个看起来很可怕的段落!值得注意的是,安全性并不是一个值得关注的问题,因为这是一个项目,不会公开曝光

干杯人

尼克

5 个答案:

答案 0 :(得分:1)

MySQL不会从文本中删除标签 - 它不会关心文本是什么。 PHP也不会剥离标记,除非你的代码中某处有strip_tags()或等价物。

如果要强制浏览器在检索到的数据中显示标记,可以通过[htmlspecialchars()][1]运行字符串,该字符串转换html元字符(<>,{ {1}},"等等)与其等同的字符实体(&&lt;等等。)。

或者您可以通过执行

强制整个页面呈现为纯文本
&gt;

答案 1 :(得分:0)

除非您明确告知,否则PHP不会剥离数据库内容。 你确定你的标签在插入之前没有被剥离吗?

或者尝试stripslashes();

答案 2 :(得分:0)

使用htmlspecialchars_decode()函数。它对我来说很好......

使用指南

带代码的文字

<?php

$text = " 
<html>
<head>
    <title>Page Title</title>
</head>
<body>
     Reference site about Lorem Ipsum, giving information on its origins, as well as a random Lipsum generator.
</body>
</html> ";

OR

$text = $row['columnname'];  // Here define your database table column name.

echo htmlspecialchars_decode($text);  

&GT;

输出:

关于Lorem Ipsum的参考网站,提供有关其来源的信息,以及随机Lipsum生成器。

答案 3 :(得分:0)

这对我有用:

例如:

<?=htmlspecialchars_decode(htmlspecialchars('I <b>love</b> you'))?>

您的浏览器将输出: 我

答案 4 :(得分:0)

使用以下代码段:

echo(strip_tags($your_string));

已复制。