Added str::limit and str::limit_words. Unfortunately php doesn't include mb_str_word_count.

This commit is contained in:
Eric Barnes 2011-10-09 23:23:45 -04:00
parent b7b5451a7f
commit ba4fd3fab0
1 changed files with 49 additions and 0 deletions

View File

@ -98,6 +98,55 @@ public static function length($value)
return strlen($value);
}
/**
* Limit the number of chars in a string
*
* <code>
* // Limit the characters
* echo Str::limit_chars('taylor otwell', 3);
* results in 'tay...'
* </code>
*
* @param string $value
* @param int $length
* @param string $end
* @return string
*/
public static function limit($value, $length = 100, $end = '...')
{
if (static::length($value) <= $length) return $value;
if (function_exists('mb_substr'))
{
return mb_substr($value, 0, $length).$end;
}
return substr($value, 0, $length).$end;
}
/**
* Limit the number of words in a string
*
* <code>
* // Limit the words
* echo Str::limit_chars('This is a sentence.', 3);
* results in 'This is a...'
* </code>
*
* @param string $value
* @param int $length
* @param string $end
* @return string
*/
public static function limit_words($value, $length = 100, $end = '...')
{
$count = str_word_count($value,1);
if ($count <= $length) return $value;
return implode(' ',array_slice($count,0,$length)).$end;
}
/**
* Convert a string to 7-bit ASCII.
*