<?php
function elipsis ($text, $words = 30) {
if (str_word_count($text) > $words) {
preg_match("/(?:[^s,.;?!]+(?:[s,.;?!]+|$)){0,$words}/", $text, $matches);
$text = trim($matches[0]);
if (substr($text, -1) == ',') {
$text = rtrim($text, ',');
$text .= '...';
} else if (substr($text, -1) == '.') {
$text = rtrim($text, '.');
$text .= '...';
} else {
$text .= '...';
}
}
return $text;
}
$description = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam ut placeat consequuntur pariatur iure eum ducimus quasi perferendis, laborum obcaecati iusto ullam expedita excepturi debitis nisi deserunt fugiat velit assumenda. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Incidunt, blanditiis nostrum. Nostrum cumque non rerum ducimus voluptas officia tempore modi, nulla nisi illum, voluptates dolor sapiente ut iusto earum. Esse? Lorem ipsum dolor sit amet, consectetur adipisicing elit. A eligendi perspiciatis natus autem. Necessitatibus eligendi doloribus corporis quia, quas laboriosam. Beatae repellat dolor alias. Perferendis, distinctio, laudantium? Dolorum, veniam, amet!';
echo elipsis($description, 30);
?>