PHP 爆炸显示分隔符

PHP Explode Show Seperator

所以我写了下面的代码来显示句子中第四个句号/句号之后的单词。

$text = "this.is.the.message.seperated.with.full.stops.";
$limit = 4;

   $minText = explode(".", $text);

   for($i = $limit; $i < count($minText); $i++){
       echo $minText[$i];
   }

该算法正在运行,它向我展示了第四个“.”之后的其余句子。句号/句号....我的问题是输出没有显示句子中的句号,因此它只显示没有正确标点符号“。”的文本。 ....有人可以帮我解决如何修复代码以显示句号/句号吗?

非常感谢

$text = "this.is.the.message.seperated.with.full.stops.";
$limit = 4;
$minText = explode(".", $text);
for($i = $limit; $i < count($minText); $i++){
    echo $minText[$i].".";
}

如果您想在单词之间的句点上将其拆分,但将末尾的那个保留为实际标点符号,您可能需要使用 preg_replace() 将句点转换为另一个字符,然后展开它.

$text = "this.is.the.message.seperated.with.full.stops.";
$limit = 4;

//replace periods if they are follwed by a alphanumeric character
$toSplit = preg_replace('/\.(?=\w)/', '#', $text);

   $minText = explode("#", $toSplit);

   for($i = $limit; $i < count($minText); $i++){
       echo $minText[$i] . "<br/>";
   }

哪个产量

seperated
with
full
stops.

当然,如果您只想打印所有句点,请在 echo 术语后添加它们。

echo $minText[$i] . ".";

您可以使用 strpos() 函数通过更改偏移参数来查找字符串中分隔符 (.) 的第 n 个位置,而不是拆分输入字符串然后对其进行迭代。

那么,就是从我们刚刚确定的位置开始打印子串了。

<?php

$text = "this.is.the.message.seperated.with.full.stops.";
$limit = 4;
$pos = 0;

//find the position of 4th occurrence of dot 
for($i = 0; $i < $limit; $i++) {
    $pos = strpos($text, '.', $pos) + 1;
}

print substr($text, $pos);

你可以试试这个...

    for($i = $limit; $i < count($minText); $i++){
       echo $minText[$i].".";
   }

注意 echo 命令末尾添加的句点 //...;

如果想要的输出是"seperated.with.full.stops.",那么你可以使用:

<?php

$text = "this.is.the.message.seperated.with.full.stops.";
$limit = 4;

$minText = explode(".", $text);
$minText = array_slice($minText, $limit);

echo implode('.', $minText) . '.';