我有这个项目是博客类型,我从服务器提交的帖子。问题是,当帖子回显(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>";
这是输出问题
答案 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)
答案 7 :(得分:1)
使用php的wordwrap()函数。