仅在3个句子后添加<span>一次,然后在每3个句子后添加<p> </p>

时间:2017-10-04 18:48:22

标签: php count insert tags add

我有一些很长的简单文本,我只需要在前5个句子之后插入<span id='colorme'></span>标签,之后我需要在每5个句子之后插入<p...></p>个标签,直到文本结束。但如果全文少于5个句子,则脚本必须什么都不做。

例如:

没有虚假的谦虚,我们声明我们拥有最好的员工。它不是某种闹剧,小说或某人的邪恶笑话。不,不 - 这是最真诚的事实。我们所有的员工都非常热情,微笑,礼貌,整洁,能干。多亏了这一点,我们的桑拿浴已成功运作多年,为所有客户带来了永久和新的乐趣。来吧,我们很高兴见到你。对你而言,Alina。

我需要:

没有虚假的谦虚,我们声明我们拥有最好的员工。它不是某种闹剧,小说或某人的邪恶笑话。不,不 - 这是最真诚的事实。 <span id='colorme'></span>我们所有的员工都非常热情,微笑,礼貌,整洁,能干。多亏了这一点,我们的桑拿浴已成功运作多年,为所有客户带来了永久和新的乐趣。来吧,我们很高兴见到你。 <p style='color:red'>www.example.com</p>关于你,Alina。

这只是一个例子。所以有类似的东西,它不是工作属性,只是在每3个句子后添加<span>但我只需要一次,我甚至不知道我该做什么

<?php
$long_text = 'long long text';
$str = $long_text;
$arr = explode(".", $str);
$new_str = "";
$j = 1;
foreach($arr as $arr_el) {
    $new_str .= $arr_el.".";
    if($j % 3 == 0) {
        $new_str .= "<span id=colorme></span>";
    };
    $j++;
}

echo $new_str;?>

1 个答案:

答案 0 :(得分:2)

如下所示: -

<?php
    $long_text = 'long long text';
    $str = $long_text;
    $arr = explode(".", $str);
    $new_str = "";
    $j = 1;
    foreach($arr as $arr_el) {
        $new_str .= $arr_el.".";
        if($j == 3) { // add span after first 3 sentences
            $new_str .= "<span id=colorme></span>";
        }else{
           if($j %3 == 0) { // now after each 3rd sentence add paragraph
              $new_str .= "<p class=colorme></p>";
           }
        }
        $j++;
    }
    echo $new_str;
?>

注意: - 由于<p></p>将重复多次,所以我将id更改为class,因为多个相同的id不正确。