如何将文本分成php中的下一行?

时间:2011-07-26 17:52:08

标签: php html

我有这个项目是博客类型,我从服务器提交的帖子。问题是,当帖子回显(ed)时,文本全部在一行中,如何在一定长度后进入下一行?

以下是发布文本的代码

$postpost = $result["post_user"];
echo " <b>name</b> = " .$result["username"] ."<br>";
echo " <b>post</b> = " .$result["post"] . "<br>";
echo " <b>date</b> = ".$date["date"]. " 
<br><br>----------------------<br><br>";

这是输出问题 enter image description here

8 个答案:

答案 0 :(得分:8)

使用wordwrap()

// the 80 is the number of characters after which to break:
echo " <b>post</b> = " . wordwrap($result["post"], 80, '<br>') . '<br>';

您可能也对nl2br()感兴趣。

答案 1 :(得分:4)

$postpost = $result["post_user"];
echo " <b>name</b> = " .$result["username"] ."<br>";
echo " <b>post</b> = " .chunk_split($result["post"],100,"<br/>") . "<br>";
echo " <b>date</b> = ".$date["date"]. " 
<br><br>----------------------<br><br>";

这将在100个字符后打破它。您可以根据需要更改100。

但是wordwrap是一个更好的解决方案:)

答案 2 :(得分:3)

你可以在php中使用wordwrap函数

<?php
  $text = "The quick brown fox jumped over the lazy dog.";
  $newtext = wordwrap($text, 20, "<br />\n");
  echo $newtext;
?>

答案 3 :(得分:2)

echo implode('<br/>',str_split($string,100));

答案 4 :(得分:2)

首先,如果您希望文本具有最大宽度,请将整个内容包含在包装<div>元素中,并使用CSS将其设置为最大宽度。元素中的任何文本都可以很好地包装。

以下是您需要的CSS代码:

#mydiv {width:200px;}

之后仍然存在问题的唯一文本是文本中没有任何空格,这仍然会延伸到页面的边缘。

对于这些,您可以使用其他CSS属性word-wrap,如下所示:

#mydiv {word-wrap:break-word;}

最佳做法是将CSS代码与HTML分开,但如果您不使用样式表,则可以使用<div>属性将CSS代码直接添加到style元素,像这样:

<div style='width:200px; word-wrap:break-word;'>
    ..... (your content goes here) .....
</div>

当然,可以在PHP中进行自动换行,使用它的wordwrap()函数(或str_split()用于没有空格的长字符串),但是你最终会得到这些行在页面上显示时长度不同,因为字体对于不同的字符具有不同的宽度。因此,我会说CSS解决方案更好,因为自动换行在页面上看起来会更好。

希望有所帮助。

答案 5 :(得分:1)

编辑:我最初认为这是一个CSS问题。我看到你想破坏用php非常大的字符串。您可以使用wordwrap()作为artlung推荐。

我最初在CSS中的想法:将每个博客条目放入div中,并为div指定自动换行:break-word; ,并指定div的宽度。

我在jsfiddle.com上的想法:Link

答案 6 :(得分:1)

这应该这样做:

$newtext = wordwrap($text, 20, "<br />\n");

示例可以找到here

答案 7 :(得分:1)

使用php的wordwrap()函数。

http://php.net/manual/en/function.wordwrap.php