你如何在textarea表单帖子中保留空格和格式?

时间:2013-12-08 00:00:45

标签: php html

我正在尝试将我存储的文本区域发布到我的数据库中,并且我希望保留所有的空白区域,以便我可以查询并显示在不同的位置。这里的问题是,当这个表单提交时,整个textarea作为一行发送。我已经研究过htmlspecialchar和urlencode,但是如果这是正确使用它们的话,怎么能在这里应用呢?

<form name = "exam" action="takeTest.php" method="post">
    <textarea name="pa1" required rows=10 cols=55>public int add(int a, int b){






    }
    </textarea>
    <input type="submit">
</form>

修改

尝试过预标记,但除了代码之外,它们只显示为默认文本。我认为添加\ n标签会在进行单元测试时弄乱代码,但我会尝试一下。

我的表单的这一部分是编程部分,它试图模仿编码正在做什么。

2 个答案:

答案 0 :(得分:2)

就像@Danny所说的那样, 行是分开的,但不是像你期望的那样与HTML换行符分开。

要将换行符(\n)转换为HTML换行符(<br>),只需使用nl2br;所以你可以用正确的HTML来使用数据库中的字符串。

它转换:

Hey\nthere

进入:

Hey<br>there

哪些浏览器呈现如下:

Hey
there

答案 1 :(得分:0)

在db中插入之前,php有一个函数nl2br()。 然后,如果你将回复身体上的数据,只需打印其他文本再次在textarea中进行编辑,请使用此

function br2nl($string)
{
    return preg_replace('/\<br(\s*)?\/?\>/i', "\n", $string);
}