将html格式的文本保存到数据库

时间:2011-01-02 09:49:20

标签: php html phpmyadmin

我想将html格式的文本保存到数据库,但是当我这样做时,它不会保存像<&lt;这样的html符号。 /&gt; ' 和别的 这就是我从数据库中读取文章进行编辑的方式:

<p class="Title">Англійський варіант:</p>
    <textarea name="EN" cols="90" rows="20" value="<?php echo htmlentities($articleArr['EN'], ENT_QUOTES, "UTF-8"); ?>" ></textarea>

之后生成这样的html代码:

<p class="Title">Англійський варіант:</p>
    <textarea name="EN" cols="90" rows="20" value="&lt;p class=&#039;Title&#039;&gt; привыт &lt;/p&gt;" ></textarea>

所以,我希望这个文本会出现在我的文本字段中,在这个页面的html代码中,但是在文本区域中没有。

在数据库中,我将其保存为:

<p class="Title"> Hello </p>

那我该如何做呢:

  1. 从数据库中读取 HTML的formattedtext。
  2. 在textarea元素中显示。
  3. 编辑并将其保存回数据库。
  4. 请帮帮我,如何妥善保存这些文本,Thanx!

3 个答案:

答案 0 :(得分:33)

尝试使用字符串上的htmlspecialchars()放入数据库,然后在将其拉出时使用htmlspecialchars_decode()。可能会有所作为。

答案 1 :(得分:3)

将其保存到nvarchar(max)字段。

确保使用参数化查询以确保安全性。阅读

http://www.aspnet101.com/2007/03/parameterized-queries-in-asp-net/

http://msdn.microsoft.com/msdnmag/issues/04/09/SQLInjection/

对Sql进行少许更改,您可以应用于Mysql aslo

答案 2 :(得分:0)

将您的 html 代码保存在数据库中没有问题。并且在保存之前不需要过滤数据。 但是当您想在 textarea 中再次显示它时,您应该Escape 它。

在 php 中,您可以使用此代码来转义 html 代码:

PHP 函数

<块引用>

见文档:htmlspecialchars

$cotnent = htmlspecialchars( $cotnent );

Wordpress 功能:

<块引用>

见文档:format_to_edit

$cotnent = format_to_edit( $cotnent , false );

<块引用>

见文档:esc_textarea

$cotnent = esc_textarea( $cotnent );