PHP爆炸显示分离器

时间:2015-07-12 12:26:35

标签: php special-characters explode

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

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

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

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

该算法正在运行,并在第四个&#34;之后向我显示句子的其余部分。&#34;完全停止/期间....我的问题是输出没有显示句子中的句号,因此它只显示我没有正确标点符号的文本&#34;。&#34; ....有人可以帮我解决如何修复代码,以显示完整的停止/期间?

非常感谢

5 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

如果您希望在单词之间的时间段内分解,但将结果保留为实际标点符号,则可能需要使用preg_replace()将句点转换为另一个字符,然后将其展开。< / p>

$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] . ".";

答案 2 :(得分:1)

您可以通过更改offset参数使用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);

答案 3 :(得分:1)

你可以试试这个......

<<

注意echo命令结束时添加的句号//。&#34;。&#34;;

答案 4 :(得分:1)

如果需要的输出是&#34; seperated.with.full.stops。&#34;,那么您可以使用:

<?php

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

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

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