Foros del Web » Programando para Internet » PHP »

limitar texto por lineas AUXILIO!

Estas en el tema de limitar texto por lineas AUXILIO! en el foro de PHP en Foros del Web. buenas, mis saludos a todos, me presento, soy nachopro de argentina. el tema es este, hice un guestbook en php alojando los mensajes en una ...
  #1 (permalink)  
Antiguo 26/11/2003, 21:36
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
Mensaje limitar texto por lineas AUXILIO!

buenas, mis saludos a todos, me presento, soy nachopro de argentina.

el tema es este, hice un guestbook en php alojando los mensajes en una db mysql... el problema es que algunos chistosos publican mensajes del tipo "sdddddddddddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddd" el cual cabe perfectamente en un campo text de mysql. pero al momento de ser mostrado en la pagina, la tabla donde esta el echo $row["mensaje"] se deforma hacia el infinito....

como lo puedo solucionar??? muchas gracias, saludos!

  #2 (permalink)  
Antiguo 26/11/2003, 21:55
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Bueno, si lo que quieres es limitar la cadena a un número determinado, puedes utilizar la función substr()
http://www.php.net/manual/es/function.substr.php

Si no quieres cortar la cadena, sino insertar un salto de línea cada x caracteres.. entonces puedes utilizar wordwrap()
http://www.php.net/manual/es/function.wordwrap.php

Saludos
  #3 (permalink)  
Antiguo 26/11/2003, 21:58
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
Desacuerdo no anda!

ufaaa
mira, puse el ejemplo
-
<?php
$texto = "El veloz murciélago hindú comía feliz cardillo y kiwi.";
$textonuevo = wordwrap( $texto, 20 );
echo "$textonuevo\n";
?>
-
Este ejemplo mostraría:

El veloz murciélago
hindú comía feliz cardillo y kiwi.

pero a mi me sale:
El veloz murciélago hindú comía feliz cardillo y kiwi.

que puede ser???
SOCORROOO


Última edición por nachopro; 26/11/2003 a las 22:15
  #4 (permalink)  
Antiguo 26/11/2003, 22:24
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Lo que pasa es que estás utilizando como parámetro de ruptura el que viene por defecto que es un salto de línea en el código, pero no en el HTML.
Prueba algo así:

$textonuevo = wordwrap( $texto, 20, "<br>" );

Saludos
  #5 (permalink)  
Antiguo 26/11/2003, 22:33
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
hola, si funciona pero no es lo que busque, lo que logre es que:
$texto = "asd asd sfwoeijrpwoewe rwerisjdfsd fspdgjsgksg rewptkweprjswefnsd fsodfjneowjfsonf";
se muestre como:
asd asd
sfwoeijrpwoewe
rwerisjdfsd
fspdgjsgksg
rewptkweprjswefnsd
fsodfjneowjfsonf

pero lo que yo quiero lograr es que si poner una palabra asi:

ssssssssssssssssssssssssssssssssssssssssssssssssss ssssssssssssssssssssssssssssssssssssssssssssssssss ssssssssssssssssssssssssssssssssssssssssssssssssss ssssssssssssssssssssssssssssssssssssssssssssssssss ssssssssssssssssssssssssssssssssssssssss
como hago para que se corte automaticamente asi no se deforma la tabla!

  #6 (permalink)  
Antiguo 26/11/2003, 22:40
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ok... entonces revisa la función chunk_split()
http://www.php.net/manual/es/function.chunk-split.php

y utilizarla así:
$textonuevo = chunk_split($texto, 20,"<br>");

Saludos
  #7 (permalink)  
Antiguo 26/11/2003, 22:55
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
De acuerdo

EXCELENTE!!!!
mil gracias muchacho!!!!
saludos y cuidese!

  #8 (permalink)  
Antiguo 26/11/2003, 23:07
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Lo que yo le encuentro de malo es que chunk_split() corta las palabras sin más ni más. Mientras que wordwrap() respeta las palabras.
Hace un tiempo josemi puso un código donde resolvía ese problema (creo) utilizando expresiones regulares... acá te dejo el link a ese post:
http://www.forosdelweb.com/showthrea...ones+regulares

Espero que te sirva.

Saludos
  #9 (permalink)  
Antiguo 27/11/2003, 00:33
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 20 años, 6 meses
Puntos: 0
Hacer una rutina (loop) que chequee caracter por caracter (o de a tres caracteres ), tomando el último y ver si se repitió ya dos veces o más no podría ser una solucion?
o consumiría demasiados recursos?
  #10 (permalink)  
Antiguo 27/11/2003, 10:11
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
mmm....

no, no seria buena esa idea, ya que pueden poner cadenas al estilo sdfggojweihasdn sin tener caracteres periodicos
ademas cuando el guestbook tenga muchos mensajes consumiria muchos recursos
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 20:52.