将字符串修剪到指定参数的第二个实例的末尾

时间:2014-10-24 18:16:21

标签: php substr

我试图将字符串修剪到second段落的末尾,所以基本上是</p>的第二个实例的结尾

我已经将一些代码修剪为500个字符,到最近的空格。我怎么能做这样的事情,但改为使用</p>作为参数,并且可变长度(段落可以很长)。

我还需要添加一个检查以查看整个帖子内容是否为300个字符,在这种情况下我可以输出整个内容

这是我所拥有的类似的代码,但不知道如何调整它。你会怎么做?

if (strlen($content) > 300){
    $content_trimmed = substr($content, 0, strpos($content, ' ', 500));
}

2 个答案:

答案 0 :(得分:1)

此函数将返回前两段:

<?php

$content = "<p>Paragraph One</p><p>Paragraph Two</p><p>Paragraph Three</p>";

function trimArticle($content) {
    if (strlen($content) > 300) {
        $paragraphs = explode('</p>', $content);
        return $paragraphs[0].'</p>'.$paragraphs[1].'</p>';
    } else {
        return $content;
    }
}

echo trimArticle($content);

?>

有这个结果:

<p>Paragraph One</p><p>Paragraph Two</p>

答案 1 :(得分:0)

另一种方法是检查长度,然后使用爆炸来抓取那些部分。然后添加缺少的截断标记,该标记爆炸抓取并连接前两个数组元素。

if (strlen($content) > 300){
$content = explode("</p>",$content) ;
$content_trimmed = $content[0]."</p>".$content[1]."</p>";
} else {
            $content_trimmed = $content;
       }
echo $content_trimmed;