我必须在每52个单词之后插入一个<br>
标记,以便它显示换行符,否则段落会一直继续增加其宽度而不是高度。我还有其他更好的方法,请告诉我。感谢。
我的代码
<?php
$str = "Hello world. My name is Yash Mathur and I am a student.
I need help in this question as this is getting on my nerves, so I came to
stackoverflow.com
to seek for an answer. Please help me insert a line break after every 52 characters.
Thanks in advance!";
$len = strlen($str);
if ($len > 52) {
$str = substr($str, 0, 52) . "<br>";
}
echo $str;
?>
我需要以某种方式将它放在一个循环中,每隔52个字符插入<br>
标记。
答案 0 :(得分:9)
我假设你最终想要实现的目标,只是一个看起来很体面的段落,其行长不会太长,以致难以阅读。我相信这是一个美容问题,可以在应用程序的表示层(即样式表)中更好地解决。
在属于该段落的样式中,您只需添加“width:250px”(250px是任意值)即可将文本约束为由段落宽度定义的自动换行框。
我不会在PHP中这样做,除非有一个非常有效的理由,因为,如果您需要更改段落的外观,那么您将不得不深入研究您的PHP代码。这可能看起来微不足道,但在几个月内你可能甚至不记得首先编写这样的代码。这将导致轻微的头痛,并且浪费大量时间来搜索这种格式化功能。
请重新考虑您的策略。
答案 1 :(得分:4)
尝试使用以下代码:
$original = "some long string";
$parts = str_split($original, 50);
$final = implode("<br>", $parts);
答案 2 :(得分:1)
你可以尝试这样的事情。但这并没有检查你是否在一个单词的中间分割一条线,你最终会得到一个丑陋的输出。尝试使用CSS代替:)
<?php
$str = "Hello world. My name is Yash Mathur and I am a student. I need help in this question as this is getting on my nerves, so I came to
stackoverflow.com to seek for an answer. Please help me insert a line break after every 52 characters. Thanks in advance!";
for ($i = 0; $i < mb_strlen($str); $i++) {
if ($i % 52){
echo mb_substr($str, 0 , 52) . '<br />';
$str = mb_substr($str, 52, mb_strlen($str));
}
}
?>
答案 3 :(得分:1)
这应该可以解决问题:
$string='Lorem ipsum...';
$parts=explode(' ',$string);
$result='';
foreach ($parts as $key=>$part)
{
$result.=$part.' ';
if ($key%50==49)
$result.='<br>';
}
但更好的方法是使用wordwrap()