好吧,对于我的网站,我允许我的用户对自己或任何他们喜欢的东西进行描述,但是当我尝试使用 [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任何帮助将不胜感激。
将white-space:pre-line
添加到您的<div>
或者,使用:
<?= nl2br($description); ?>
请记住,HTML 需要<br />
换行符,而不是'n
或'r'n
(就像您的<textarea>
正在收集的那样)。因此,您可以使用white-space
告诉HTML注意这些新行,或者使用nl2br
强制<br />
。
当您在文本区域中输入换行符时,它会存储为'n
,但是,HTML 不支持'n
换行符,这就是为什么在div 内所有内容都显示在一行中的原因。
要解决此问题,您必须将'n
转换为 HTML 识别的<br />
(使用 nl2br()
<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>
这是因为当您使用常规换行符并尝试将其呈现为 HTML 时,HTML 会忽略空格字符。 您需要显式使用 <br>
(或<br/>
,具体取决于 DOCTYPE)在 HTML 中创建换行符。
在 PHP 中执行此操作的最简单方法是在输出时使用 PHP 中的nl2br()
函数。