2013-09-24 62 views
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。

+0

浏览器接受HTML(nl2br()) – 2013-09-24 23:43:48

+0

Web浏览器不呈现换行符。使用['nl2br()'](http://php.net/manual/en/function.nl2br.php)将换行符转换为HTML'
'元素。 – Sammitch

+0

http://php.net/manual/en/function.nl2br.php – djot

回答

0

添加white-space:pre-line<div>或者使用:

<?= nl2br($description); ?> 

请记住,HTML需要<br />换行,不\n\r\n(如您<textarea>正在收集)。因此,您可以让HTML注意使用white-space的新行,或使用nl2br强制<br />

0

当你在一个textarea中输入一个换行符时,它将被存储为\n,但是HTML不会兑现\n linebreaks,这就是为什么当一个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> 
0

这是因为当你把一个普通换行符,并尝试呈现为HTML,HTML忽略空白字符。您需要明确使用<br>(或<br/>,具体取决于DOCTYPE)以HTML创建换行符。

在PHP中做到这一点,最简单的方法是通过对输出使用nl2br()功能在PHP。

相关问题