Here is a function modified from another that I found on the Internet; it removes any HTML code and first clears some MS funky characters; he then adds an extra ellipsis symbol to the content to show that it has been shortened. It is correctly broken into words, so you will not have seemingly random characters;
/** * Function to ellipse-ify text to a specific length * * @param string $text The text to be ellipsified * @param int $max The maximum number of characters (to the word) that should be allowed * @param string $append The text to append to $text * @return string The shortened text * @author Brenley Dueck * @link http://www.brenelz.com/blog/2008/12/14/creating-an-ellipsis-in-php/ */ function ellipsis($text, $max=100, $append='…') { if (strlen($text) <= $max) return $text; $replacements = array( '|<br /><br />|' => ' ', '| |' => ' ', '|’|' => '\'', '|‘|' => '\'', '|“|' => '"', '|”|' => '"', ); $patterns = array_keys($replacements); $replacements = array_values($replacements); $text = preg_replace($patterns, $replacements, $text); // convert double newlines to spaces $text = strip_tags($text); // remove any html. we *only* want text $out = substr($text, 0, $max); if (strpos($text, ' ') === false) return $out.$append; return preg_replace('/(\W)&(\W)/', '$1&$2', (preg_replace('/\W+$/', ' ', preg_replace('/\w+$/', '', $out)))) . $append; }
Input:
<p class="body">The latest grocery news is that the Kroger Co. is testing a new self-checkout technology. My question is: What’s in it for me?</p> <p>Kroger said the system, from Fujitsu,
Output:
The latest grocery news is that the Kroger Co. is testing a new self-checkout technology. My question is: What in it for me? Kroger said the …
Glen solsberry
source share