Quizás cuando dices campo de texto pueda ser una textarea.
Si es así, yo solucioné algo parecido con la siguiente función:
Código PHP:
//==================================================================================
// Se trata de eliminar "retornos de carro" excesivos
//==================================================================================
function reducirRetornoCarro($comentario, $max){
//-se desean dejar un máximo de retornos de carro "$max", pero como siempre vienen
// doble, (por venir \r y \n) se multiplica por dos para conseguir el mismo efecto
$max=$max * 2;
$long = strlen($comentario);
$nuevo_comentario="";
$c13=0;
For ($i=0;$i<=$long;$i++)
{
//echo '<br>iteración='.$i;
if (substr($comentario, $i, 1) == "\r" or substr($comentario, $i, 1) == "\n")
{
$c13++;
if ($c13 > $max)
{
//no se hace nada: se esta omitiendo un retorno de carro
}else{
$nuevo_comentario.=substr($comentario, $i, 1);
}
}else{
$nuevo_comentario.=substr($comentario, $i, 1);
$c13=0;
}
}
return $nuevo_comentario;
}
Espero que te sirva o al menos te dé una idéa. Un saludo.