好吧,对于我的网站,我允许我的用户描述他们自己或他们喜欢的任何东西,但是当我尝试使用[ENTERKEY]进入<textarea>
时它看起来像这样:
Hello, I am John Smith.
Phone#: (123)456-7890
I enjoy web-browsing.
当我返回页面时,它看起来完全相同(它将当前描述放在编辑框中)。这就是我要的。我查看PHP数据库,它看起来仍然相同。这又是我想要的。但是在个人资料页面上看起来像这样
Hello, I am John Smith. Phone#: (123)456-7890 I enjoy web-browsing.
它包含在带有这些样式标签的div中,如此
<div style="width: 250px; min-height: 50px; margin: auto; font-weight: normal; text-align: center; padding: 2px; margin-bottom: 5px;">
<?php echo $description; ?>
</div>
我很好奇为什么会这样做,任何帮助都会受到赞赏:D。
答案 0 :(得分:0)
将white-space:pre-line
添加到<div>
或者,使用:
<?= nl2br($description); ?>
请注意,HTML需要<br />
来换行,而不是\n
或\r\n
(就像您的<textarea>
正在收集的那样)。因此,您可以告诉HTML使用white-space
关注这些新行,或使用nl2br
强制<br />
。
答案 1 :(得分:0)
当您在textarea中输入换行符时,它会被存储为\n
,但HTML不会尊重\n
换行符,这就是为什么所有内容都在div中显示在一行中的原因。
要解决此问题,您必须将\n
转换为<br />
(使用nl2br()
)HTML识别:
<div style="width: 250px; min-height: 50px; margin: auto; font-weight: normal; text-align: center; padding: 2px; margin-bottom: 5px;">
<?php echo nl2br($description); ?>
</div>
答案 2 :(得分:0)
这是因为当您采用常规换行符并尝试将其呈现为HTML时,HTML会忽略空白字符。您需要明确使用<br>
(或<br/>
,具体取决于DOCTYPE)才能在HTML中创建换行符。
在PHP中执行此操作的最简单方法是在输出中使用PHP中的nl2br()
函数。