0

好的,所以对于我的网站,我允许我的用户对自己或他们喜欢的任何内容进行描述,但是当我尝试使用 [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。

4

3 回答 3

0

添加white-space:pre-line到您的<div>或,使用:

<?= nl2br($description); ?>

请记住,HTML 需要<br />换行符,而不是\n\r\n(就像您<textarea>正在收集的那样)。因此,您可以告诉 HTML 使用 using 来注意那些新行white-space,或者强制<br />使用 using nl2br

于 2013-09-24T23:43:56.270 回答
0

当您在 textarea 中输入换行符时,它会存储为\n,但是,HTML 不支持\n换行符,这就是为什么在 div 中所有内容都显示在一行中的原因。

要解决此问题,您必须将HTML 识别的(使用)转换\n为:<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>
于 2013-09-24T23:43:56.567 回答
0

这是因为当您进行常规换行并尝试将其呈现为 HTML 时,HTML 会忽略空格字符。您需要明确使用<br>(或<br/>取决于 DOCTYPE)在 HTML 中创建换行符。

在 PHP 中执行此操作的最简单方法是nl2br()在输出中使用 PHP 中的函数。

于 2013-09-24T23:44:55.650 回答