Длинный текст содержит некоторые HTML-теги (уш, IMG и т.д.)Split длинный текст с HTML в задира и основную часть
Этот текст нужно тизер с максимум 400 символов и заботиться о словах и html-теги но теги br должны быть заменены пробелом, чтобы удалить разрывы строк в тизер. Выглядит лучше!
Текст после тизера должен быть текст минус тизер, но со всеми HTML-теги и изображения включены бр
Example text:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. <img alt="image" src="/image.jpg"> At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
<br /><br />
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. <img alt="image" src="/image.jpg"> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
<br /><br />
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, <img alt="image" src="/image.jpg"> vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet.
Что я пробовал:
$content = $junk_of_lorem;
function teaser($string){
$string = substr($string,0,500);
$string = substr($string,0,strrpos($string," "))
$replacements = array(
'|<br /><br />|' => ' '
);
$patterns = array_keys($replacements);
$replacements = array_values($replacements);
$string = preg_replace($patterns, $replacements, $string);
return $string;
}
$teaser = teaser($content);
Теперь я попытался удалите $ teaser из текста, чтобы получить текст без тизера
$mainpart = str_replace(teaser($content), "", $content);
Проблема:
с этим фиктивным решением, я столкнулся с проблемами, потому что тизер только с br, а у основной части есть все теги html. Когда есть изображение arround char 490, основная часть содержит половину тега img.
strip_tags, разрешающий работать с тизеры, но я не могу удалить точное соответствие из $ mainpart.
Я уверен, что есть лучшее решение. Извините за меня английские ошибки, пожалуйста, не проголосуйте меня. Я изо всех сил объяснил это.
Большое спасибо за ваше время, чтобы помочь мне.
Для тизер, используйте strip_tags перед тем зиЬзЬги http://php.net/manual/fr/function.strip-tags.php –
но когда тизер не имеет HTML-тегов больше, но mainpart должны, я не могу заменить тизерная часть из основного текста, потому что не соответствует. – labu77
Вот что я нашел об усечении текста и HTML: http://www.pjgalbraith.com/truncating-text-html-with-php/ –