Я пытаюсь обрезать строку до конца second
абзац, так что по сути конец второго экземпляра </p>
У меня уже есть код, чтобы урезать его до 500 символов до ближайшего пробела. Как я мог сделать что-то подобное, но с </p>
в качестве параметра вместо него и переменной длины (абзацы могут быть длинными).
Мне также нужно добавить проверку, чтобы увидеть, если весь пост содержание меньше 300 символов, в этом случае я могу вывести все это
Это код, который у меня есть, который похож, но не уверен, как его адаптировать. Как бы вы это сделали?
if (strlen($content) > 300){
$content_trimmed = substr($content, 0, strpos($content, ' ', 500));
}
Эта функция вернет первые два абзаца:
<?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>
Другой способ — проверить длину, а затем использовать разнесение, чтобы захватить эти части. Затем добавьте отсутствующий тег закрывающего абзаца, который разрывается, захватывает и объединяет первые два элемента массива.
if (strlen($content) > 300){
$content = explode("</p>",$content) ;
$content_trimmed = $content[0]."</p>".$content[1]."</p>";
} else {
$content_trimmed = $content;
}
echo $content_trimmed;