$length) { $length -= strlen($etc); $fragment = substr($string, 0, $length + 1); if ($break_words) { $fragment = substr($fragment, 0, -1); } else { $fragment = preg_replace('/\s+(\S+)?$/', '', $fragment); } return $fragment . $etc; } elseif (strlen($string) < $length) { return $string . str_repeat($pad, $length - strlen($string)); } else { return $string; } }