Código PHP:
function cortarTexto($texto, $longitud, $parte = 1)
{
if ($parte < 1 || strpos($texto, ' ') === false)
{
$parte = 1;
}
elseif ($parte > (strlen(substr($texto, 0, strrpos($texto, ' '))) / $longitud))
{
$parte = strlen(substr($texto, 0, strrpos($texto, ' '))) / $longitud;
}
$desplazamiento = ($parte - 1) * $longitud;
if (!$desplazamiento || substr($texto, $desplazamiento - 1, 1) == ' ')
{
$pos1 = $desplazamiento;
}
else
{
$pos1 = strpos($texto, ' ', $desplazamiento) + 1;
}
if ($longitud <= ($pos1 - $desplazamiento))
{
$desplazamiento = $pos1;
}
if (substr($texto, $desplazamiento + $longitud - 1, 1) == ' ')
{
$pos2 = $desplazamiento + $longitud;
}
elseif(strpos($texto, ' ', $desplazamiento + $longitud) !== false)
{
$pos2 = strpos($texto, ' ', $desplazamiento + $longitud);
}
else
{
$pos2 = strlen($texto);
}
return substr($texto, $pos1, $pos2 - $pos1);
}
$texto = 'El coche rápido El coche rápido El coche rápido El coche rápido';
echo cortarTexto($texto, 1, 66);