Mr. Heyes more or less prompted me to go dig for my other, slightly
heavier version, that doesn't chop words up:
Sorry I hit Reply instead Reply All. Regardless, here's my str_curtail.
There is a bug in it that means if the string is all one word then it
gets curtailed to nada, but that's easily fixed.
/**
* Shortens the given string to the specified number of characters,
* however will never shorten mid-word (going backwards to find white
* space). Appends
* "..." (unless third arg is given).
*
* @param string $str Input to shorten
* @param int $length Length to shorten to (defaults to 35)
* @param string $append String to append (defaults to "...")
* @return string Resulting shortened string
*/
function str_curtail($str, $length = 35, $append = '...')
{
// String short enough already ?
if (strlen($str) <= $length) {
return $str;
}
$str = substr($str, 0, $length);
// No body intentionally
for ($i=$length - 1; !ctype_space($str{$i}) && $i > 0; --$i);
return rtrim(substr($str, 0, $i)) . $append;
}
--
Richard Heyes
Employ me:
http://www.phpguru.org/cv
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php