将代码段插入数据库并在textarea中以相同的方式显示它

时间:2017-11-09 03:58:36

标签: php html mysql sql sqlite

我如何能够将代码段插入数据库,然后在 textarea 中以相同方式显示代码 当我插入它时。

比较&中的代码出来,他们永远不会是一样的,出于某种原因,我无法让它发挥作用。

$db = new sqlite3('test.db');
$r = $db->query("select * from test where id='1'");
$f = $r->fetchArray();

echo "<textarea rows='10' style='width:500px;'>$f[data]</textarea>";
$db->close();

这是我测试的代码

't apple \n\r 

♦   &diams; &#9830; black (solid) diamond suit

<textarea></textarea>
$£%^&*()!@">RWH{{@£})"":?'
<form>dfddf
<input type="button">
</form>

如何正确地将其插入数据库以在textarea中以相同的方式显示数据?

1 个答案:

答案 0 :(得分:0)

强烈建议不要在数据库中存储代码,这可能会导致一些非常严重的安全漏洞,但在将代码添加到数据库时可以使用htmlentities()

请记住,这不会让您完全安全,但是,它至少会将标记更改为符号。

  

htmlentities - 将所有适用的字符转换为HTML实体

这将完成将结果存储到数据库中所需的操作:

$string = '<h1>This is a Heading 1</h1>';

现在,在运行sql查询时,请使用字符串添加htmlentities函数:

htmlentities($string);

如果你打印,你会看到:

<h1>This is a Heading 1</h1>

而不是:

这是标题1