Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/12/2005, 07:23
dzapata
 
Fecha de Ingreso: julio-2005
Mensajes: 24
Antigüedad: 18 años, 10 meses
Puntos: 0
Ya lo logré ... la función a mi parecer no es muy eficiente, pero por lo menos hace lo que quiero.

Aqui les envío la función para que la utilicen y si le encuentran la forma de mejorala.

function Ajusta_Texto($cadena,$longitud){
//1º Paso: conocer lo saltos de línea que posee el texto, con el fin de crear un explode a partir de dichos saltos
$cadena = nl2br($cadena);
$arreglo_salto_linea = explode("<br />",$cadena); //divide la cadena en vectores tomando como base los saltos de linea
$cadena_a_retornar=""; //almacenará la nueva cadena formateada
$numero_caracteres = 0; //servirá para controlar la cantidad de caracteres que se agregarán por línea
for($indice_salto = 0; $indice_salto <= count($arreglo_salto_linea)-1; $indice_salto++){
//2º Paso: conocer los espacios en blanco que conforman a la subcadena por cada posición del vector, con el fin de crear un explode a partir de dichos espacios
$arreglo_espacio = explode(" ",$arreglo_salto_linea[$indice_salto]);
for($indice_espacio = 0; $indice_espacio <= count($arreglo_espacio)-1; $indice_espacio++){
if ($indice_espacio == 0 && $indice_salto>0)
$arreglo_espacio[$indice_espacio] = substr($arreglo_espacio[$indice_espacio],2);
if($numero_caracteres + strlen($arreglo_espacio[$indice_espacio]) +1 > $longitud){
$cadena_a_retornar.= "<br>";
$numero_caracteres = strlen($arreglo_espacio[$indice_espacio]) + 1;
}
else
$numero_caracteres = $numero_caracteres + strlen($arreglo_espacio[$indice_espacio]) + 1;
$cadena_a_retornar.= " " . $arreglo_espacio[$indice_espacio];
}
$arreglo_espacio = NULL;
$cadena_a_retornar.= "<br>"; //se agrega el salto de línea que tenía originalmente
}//cierre del for
return($cadena_a_retornar);
}//cierre de la función