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