Foros del Web » Programando para Internet » PHP »

Limitar numero de caracteres a la hora imprimir

Estas en el tema de Limitar numero de caracteres a la hora imprimir en el foro de PHP en Foros del Web. Buenas. estoy haciendo una cunsulta en sql a la BD y necesito que a la hora de imprimir lo que consiguio solo imprima una cantidad ...
  #1 (permalink)  
Antiguo 22/04/2005, 09:23
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 14 años, 4 meses
Puntos: 0
Limitar numero de caracteres a la hora imprimir

Buenas.
estoy haciendo una cunsulta en sql a la BD y necesito que a la hora de imprimir lo que consiguio solo imprima una cantidad de caracteres seguido de puntos suspensivos, es como dar un abre boca del texto. Ya que luego yo al darle clic en un vinculo se muestra todo el articulo.
¿como hago esto? me dijeron que es facil pero no se mucho de PHP
Muchas gracias,
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
  #2 (permalink)  
Antiguo 22/04/2005, 09:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Hace un tiempo hice una funcioncita para tal fin (como pasa el tiempo!!!) .. revisalo .. También recuerda que vía SQL se podría hacer también (en su defecto visita un manual de SQL de Mysql):

http://www.forosdelweb.com/showthrea...hreadid=112544

Un saludo,
  #3 (permalink)  
Antiguo 22/04/2005, 13:56
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 14 años, 4 meses
Puntos: 0
Muchas Gracias, todo salio a las mil maravillas. Una mas para la cuenta de CLUSTER.
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
  #4 (permalink)  
Antiguo 22/04/2005, 15:01
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Yo también hice una función utilizando wordwrap(). Y ya sin darme cuenta la vengo utilizando desde hace bastante tiempo.
Código PHP:
function limitar_texto($texto$max_long){
    
$texto wordwrap($texto$max_long'<|*|*|>'); // separar en $max_long con ruptura sin cortar palabras.
    
$posicion strpos($texto'<|*|*|>'); // encontrar la primera aparición de la ruptura.
    
$texto substr($texto0$posicion).'...'// tomar la porción antes de la ruptura y agregar '...'
    
return $texto;    

Pero como verán... lo que hace es utilizar el wordwrap e ir añadiendo una ruptura <|*|*|> cada $max_long sin cortar palabras.
Lo que sigue es más sencillo. Me parece que la función de Cluster irá más rápido porque trabaja directamente sólo con una pequeña porción del texto.
O sea, en textos pequeños no habrá diferencia... pero para textos muy largos...

De todos modos en la función de Cluster yo utilizaría array_pop() para deshacernos directamente del último elemento. O sea, la función de Cluster podría quedar mejor así:
Código PHP:
function cortar_frase($frase_entrada$cortar){
    
$frase_corta substr($frase_entrada0$cortar); // obtener la frase cortada.
    
$palabras explode(' '$frase_corta); // obtener array con las palabras.
    
array_pop($palabras); // le quitamos la ultima palabra.
    
$frase_salida implode(' ',$palabras); //  y concatenamos con el espacio hacia una cadena.
    
$frase_salida .= "..."// se añaden los puntos suspensivos a la cadena obtenida..
    
    
return $frase_salida;

¿cometarios?

Saludos
  #5 (permalink)  
Antiguo 23/04/2005, 16:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Como se observa .. par un problema hay muchas soluciones ..

Gracias por el comentario jpinedo .. sobre array_pop() .. realmente hace ya como 2 años o cosa asì de aquella funciòn .. uno tambien va aprendiendo por el camnio jejeje.

Pero .. como comentè .. si se usa Base de datos estarìa bueno usar màs SQL .. que parece que no .. pero igual es muy potente.

Un saludo,
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 14:43.