Php 函数explode()在x个字符后,而不是标点符号后

Php 函数explode()在x个字符后,而不是标点符号后,php,Php,我正在创建一个应用程序,假设用户键入的文本尽可能正确。文本来自数据库,并将其放置在字符串中。我在一个div中显示字符串,如果字符串的长度对于div来说太长,我想将其拆分。我知道以前也有类似的问题,但我还没有找到解决问题的办法 这就是我想做的: 在这种情况下: -------------------- | The displayed str|ing -------------------- 我想要这个: -------------------- | The displayed st | --

我正在创建一个应用程序,假设用户键入的文本尽可能正确。文本来自数据库,并将其放置在字符串中。我在一个div中显示字符串,如果字符串的长度对于div来说太长,我想将其拆分。我知道以前也有类似的问题,但我还没有找到解决问题的办法

这就是我想做的:

在这种情况下:

--------------------
| The displayed str|ing 
--------------------
我想要这个:

--------------------
| The displayed st | 
--------------------
这是我目前的代码:

while ($row = mysqli_fetch_array($result)) {
    $textline = explode(".", $row["text"]);
}

$i = 0;

foreach ($textline as $o) {
   $letters = str_split_unicode($letters[$i], 1);
   if (ctype_space($letters[0])) {
         unset($letters[0]);
   }
   foreach ($letters as $l) {
      if (ctype_space($l)) {
         echo "<p>&nbsp;</p>";
      } else {
        echo "<p>$l</p>";
      }
   }
            $i++;
}
但我希望它像这样分开:


在这里,它在包含空格的14个字符后拆分。

如果我理解正确,这将起作用。替换此代码:

while ($row = mysqli_fetch_array($result)) { 
$textline = explode(".", $row["text"]); 
} 
为此:

while ($row = mysqli_fetch_array($result)) {
$string = $row['text']; $string = wordwrap($string, 80, ";;;;", true); 
$oppgavelinjer = explode(";;;;", $string); 
} 

只要文本一行不包含4个分号,就可以用所需的长度替换“80”

说明问题的方式,overflow:hidden;,在CSS中,那些div元素也可以;我错过什么了吗。使用CSS溢出:隐藏不是一个选项吗?它将为您解决字体大小问题,这在PHP中很难做到。overflow:hidden很好,而且效果也很好,但代码的工作方式是将文本拆分为不同的文本行,而overflow:hidden则会使其余文本消失。您看到了吗?“代码在标点处拆分文本”-好吧,如果你不想那样做-那你为什么要通过explode明确地这么做…?非常感谢你,已经在这个问题上纠缠了好几个小时了
while ($row = mysqli_fetch_array($result)) { 
$textline = explode(".", $row["text"]); 
} 
while ($row = mysqli_fetch_array($result)) {
$string = $row['text']; $string = wordwrap($string, 80, ";;;;", true); 
$oppgavelinjer = explode(";;;;", $string); 
}