regarding xPlozion's code, it would be faster to use a builtin php function instead of iterating:
PHP Code:
// instead of iterating like this
while (($string{$length} != " ") AND ($length > 0)) {
$length--;
}
// call strrpos() function which returns
// the last occurrence of " " in $string from $setlength (offset)
$length = strrpos($string, " ", $setlength);
-----Edit:
Actually, I just came up with a recursive function to do just that :P
PHP Code:
function cut_text($string, $setlength, &$outarray=array()) {
if (strlen($string)<=$setlength) {
$outarray[] = $string;
} else {
$tmpstr = substr($string,0,$setlength);
$length = strrpos($tmpstr, " ");
$outarray[] = substr($tmpstr,0,$length);
cut_text(trim(substr($string,$length)),$setlength,$outarray);
}
}
// call function
cut_text($message, 160, $result);
// result is stored as an array in $result
var_dump($result);