This piece of code shortens a text string to the specified length on a word basis and adds “…” after. Perfect for use in teasers of lengthy text pieces and so on.
<?php
/**
* Shortens a string to the specified number of characters on a word basis.
* Adds "..." to the end of the string if the string was longer than specified.
* Example 1
* $text = "The sky is not the limit, I know 'cause I feel higher today!";
* echo shortenText($text);
*
* Would print:
* The sky is not the limit, I know 'cause I feel higher today!
*
* Example 2
* $text = "The sky is not the limit, I know 'cause I feel higher today!";
* echo shortenText($text, 20);
*
* Would print:
* The sky is not the...
*/
function shortenText($text, $chars = 256)
{
// Do not shorten if the text is already
// shorter that the desired amount.
if(strlen($text) <= $chars)
return $text;
$text = $text." ";
$text = substr($text,0,$chars);
$text = substr($text,0,strrpos($text,' '));
$text = $text."...";
return $text;
}
?>