Foros del Web » Programando para Internet » PHP »

Dividir cadena de texto

Estas en el tema de Dividir cadena de texto en el foro de PHP en Foros del Web. Hola a todos. Estoy trabajando en un formulario en el que los usuarios introducen un texto y este texto se guarda en un PDF. Mi ...
  #1 (permalink)  
Antiguo 07/03/2012, 02:37
 
Fecha de Ingreso: septiembre-2011
Ubicación: Almería
Mensajes: 20
Antigüedad: 12 años, 8 meses
Puntos: 2
Dividir cadena de texto

Hola a todos. Estoy trabajando en un formulario en el que los usuarios introducen un texto y este texto se guarda en un PDF. Mi idea es dividir el texto en líneas de 70-80 caracteres, dependiendo de donde haya un espacio (para no cortar palabras por la mitad). Lo primero con lo que probé fue esto:
Código PHP:
Ver original
  1. $firstline = substr($message,0,strpos($message,' ',80));
  2. $firstlenght = strlen($firstline);
  3. $secondline = substr($message,$firstlenght,strpos($message, ' ' ,$firstlenght));

Y así para el resto de líneas. Pero sólo divide correctamente la primera línea, el resto, o empiezan con una parte de la linea anterior, o se repiten.
He pensado que quizá con preg_split pueda hacerlo, pero soy malísimo con las expresiones regulares.
Cualquier ayuda se agradece!
Un saludo!
  #2 (permalink)  
Antiguo 07/03/2012, 04:00
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Respuesta: Dividir cadena de texto

¿podrías poner un ejemplo de un texto y luego como te gustaría que quedase cortado?
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 07/03/2012, 04:24
 
Fecha de Ingreso: septiembre-2011
Ubicación: Almería
Mensajes: 20
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Dividir cadena de texto

Supongamos este texto:

Cita:
Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, cuando un impresor (N. del T. persona que se dedica a la imprenta) desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen.
La idea sería cortarlo para que las líneas encajen en el PDF sin cortar ninguna palabra por la mitad. Por ejemplo algo asi:

Cita:
Lorem Ipsum es simplemente el texto de relleno de las imprentas
y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar
de las industrias desde el año 1500, cuando un impresor
(N. del T. persona que se dedica a la imprenta) desconocido
usó una galería de textos y los mezcló de tal manera
que logró hacer un libro de textos especimen.

No es obligatorio que quede así, visto que el texto introducido no va a ser nunca el mismo, pero como dije en mi primer mensaje, las líneas deberían ser de unos 70-80 caracteres, que es aproximadamente lo que me entra en una línea en el PDF.
  #4 (permalink)  
Antiguo 07/03/2012, 04:43
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Dividir cadena de texto

Buenas vecino

La cosa es más simple de lo que parece. No hace falta complicarse. Para ello tenemos la funcion wordwrap()
Un posible ejemplo:

Código PHP:
Ver original
  1. $message = "Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, cuando un impresor (N. del T. persona que se dedica a la imprenta) desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen.";
  2. $mostrar = wordwrap($message, 70, "<br />");
  3. echo $mostrar;

Saludos,
  #5 (permalink)  
Antiguo 07/03/2012, 04:44
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Respuesta: Dividir cadena de texto

no me acordaba de esto, buen aporte ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #6 (permalink)  
Antiguo 07/03/2012, 05:58
 
Fecha de Ingreso: septiembre-2011
Ubicación: Almería
Mensajes: 20
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Dividir cadena de texto

Cita:
Iniciado por OsSk4R Ver Mensaje
Buenas vecino

La cosa es más simple de lo que parece. No hace falta complicarse. Para ello tenemos la funcion [URL="http://es.php.net/wordwrap"]wordwrap()[/URL]
Un posible ejemplo:

Código PHP:
Ver original
  1. $message = "Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, cuando un impresor (N. del T. persona que se dedica a la imprenta) desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen.";
  2. $mostrar = wordwrap($message, 70, "<br />");
  3. echo $mostrar;

Saludos,
Muchas gracias!
Usando wordwrap y luego explode para separar las líneas he conseguido hacerlo. La verdad que no se me había ocurrido, pensé en muchas cosas, pero estaba empeñado en hacerlo más complicado de la cuenta
Gracias a todos por vuestras repuestas!

Etiquetas: dividir, formulario, usuarios, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:02.