imposta il parametro $num_rows per il numero di righe che vuoi ottenere (nel tuo caso 3)

<?
$testo = "la carta vincente della juventus è quella di sostituire sempre del piero. cosi dice capello.";
$testo .= "Dopotutto bisogna avere pazienza, sono solo 5 anni che non gira!";

$num_rows = 4; //il numero di righe sul quale dividere il testo

$step = intval(strlen($testo) / $num_rows);

/* chiamata all funzione di taglio del testo, passare per riferimento l'array finale $result con i pezzi del testo */
split_text($testo, $result, $step);

print_r($result);

/* funzione ricorsiva di taglio del testo */
function split_text($fulltext, &$parts, $step){

$length = strlen($fulltext);
$start = 0;
for ($i = 0; $i<count($parts); $i++){
$start += strlen($parts[$i]);
}
$split = $start + $step;
if ($split >= $length) {
$end = $length;
$parts[] = substr($fulltext, $start);
} else {
$end = strpos($fulltext," ", $split);
$parts[] = substr($fulltext, $start, $end - $start);
}

if ($end < $length){
split_text($fulltext, $parts, $step);
}
}
?>