我正在尝试将我存储的文本区域发布到我的数据库中,并且我希望保留所有的空白区域,以便我可以查询并显示在不同的位置。这里的问题是,当这个表单提交时,整个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标签会在进行单元测试时弄乱代码,但我会尝试一下。
我的表单的这一部分是编程部分,它试图模仿编码正在做什么。
答案 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);
}