Ciao,
se vuoi mantenere tutte le parole puoi fare così
codice:
$frase = 'questa è una frase abbastanza lunga, anzi prolissa e persino un po\' noiosa' ;
$frase = explode(' ', $frase) ;
$to = rand(3, count($frase)-1) ;
$prima = array_slice($frase, 0, $to) ;
$dopo = array_slice($frase, $to, count($frase)-2) ;
$frase = implode(' ', $prima).'...'.implode(' ', $dopo) ;
echo $frase ;
Se invece vuoi accorciare la frase e sostituirne una porzione con i puntini
codice:
$frase = 'questa è una frase abbastanza lunga, anzi prolissa e persino un po\' noiosa' ;
$frase = explode(' ', $frase) ;
$from = rand(2, count($frase)-1) ;
$howMany = 3 ;
array_splice($frase, $from, $howMany, array('...')) ;
echo implode(' ' , $frase) ;