Hola esas cadena metiendolas un un array y utilizando la funcion de abajo puede serte util.
En la Variable $texto es donde esta la cadena
En la Variable $cortar le dices en cuantos trozos quieres cortar la cadena
En la Variable $breakStr le dices que signo o simbolo quieres que introduzca
El resultado lo puedes partir facilmente con explode.
Código PHP:
<?
$texto = "Hay que tener en cuenta queforeach trabaja con una copia de la matriz especificada y no la lista en si, por ello el puntero de la lista no es modificado como en la función each(), y los cambios en el elemento de la matriz retornado no afectan a la matriz original. De todas maneras el puntero interno a la matriz original avanza al procesar la matriz. suponiendo que bucle foreach se ejecuta hasta el final, el puntero interno a la matriz estar/aacute; al final de la matriz";
function new_textwrap ($String, $cortar = 19, $breakStr = "\n", $cut = 2 , $padStr="<br>") {
$newString="";
$lines=explode($breakStr, $String);
$cnt=count($lines);
for($x=0;$x<$cnt;$x++){
if(strlen($lines[$x])>$cortar){
$str=$lines[$x];
while(strlen($str)>$cortar){
$find = 1 ;
$pos=strrpos(substr($str, 0, $cortar+1), "");
if ($pos == false) {
If($cut) {
$pos = $cortar ;
$find = 0 ;
} else {
$pos= strpos($str, "");
if ($pos == false)
break;
}
}
$newString.=$padStr.substr($str, 0, $pos).$breakStr;
$str=(substr($str, $pos + $find));
}
$newString.=$padStr.$str.$breakStr;
}
else{
$newString.=$padStr.$lines[$x].$breakStr;
}
}
return substr ($newString,0, -(strlen($breakStr)));
}
echo new_textwrap($texto);
?>
Saludos