Вы можете использовать str_split , если вас не интересует, где вы разрываете строки.
Иначе, если вы обеспокоены этим (и хотите, скажем, разбить только на пустые пространства), вы можете сделать что-то вроде:
// $str is the string you want to chop up.
$split = preg_split('/(.{0,110})\s/',
$str,
0,
PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
С этим массивом вы можете просто сделать:
$count = count($split);
foreach ($split as $key => $message) {
$part = sprintf("(%d/%d) %s", $key+1, $count, $message);
// $part is now one of your messages;
// do what you wish with it here.
}