Foros del Web » Programando para Internet » PHP »

Consulta sobre cadenas de texto

Estas en el tema de Consulta sobre cadenas de texto en el foro de PHP en Foros del Web. podiran decirme como hago que a una variable con una cadena de letras mayor de 20 letras, la disminuya a otra cantidad, por ejemplo esto: ...
  #1 (permalink)  
Antiguo 21/01/2003, 15:17
Avatar de Ne0Xer0  
Fecha de Ingreso: noviembre-2002
Mensajes: 33
Antigüedad: 21 años, 4 meses
Puntos: 0
Consulta sobre cadenas de texto

podiran decirme como hago que a una variable con una cadena de letras mayor de 20 letras, la disminuya a otra cantidad, por ejemplo esto:

Código PHP:
$variable "hola como estas, espero que muy bien"
quisisera que a través de una funcion la deje asi

Código PHP:
$variable "hola como estas, espe..."
ojala que me puedan responder, estaria muy agradecido.
__________________
echo $REMOTE_ADDR;
  #2 (permalink)  
Antiguo 21/01/2003, 15:22
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Código PHP:
<?

$variable 
"hola como estas, espero que muy bien";

echo 
substr($variable010); # pintamos los 10 primeros carácteres
if (strlen($variable)>10){echo "...";} # Si la cadena era más larga de 10 carácteres, pintamos "..."

 
?>
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 21/01/2003, 15:25
Avatar de Ne0Xer0  
Fecha de Ingreso: noviembre-2002
Mensajes: 33
Antigüedad: 21 años, 4 meses
Puntos: 0
jjeejjejeje, demasiadas gracias amigo

__________________
echo $REMOTE_ADDR;
  #4 (permalink)  
Antiguo 21/01/2003, 15:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Date una vuelta por la seccion de string del manual , que hay te vienen las funciones de manipulacion de strings. La que tu buscas es substr(), pero deberias acostumbrarte a usar el manual y buscar un poco por tu cuenta antes de venir por aqui a que te den la solucion. Asi aprenderas algo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 21/01/2003, 15:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Aquí hice una funcioncita que hace eso mismo y tiene en cuenta no cortar una palabra (lo publiqué en el foro no se cuando .. aquí va igualmente):

Código PHP:
<?
function cortar_frase($frase_entrada,$cortar){

   
$frase_corta=substr($frase_entrada,0,$cortar); // obtener la frase cortada.
   
$palabras=str_word_count($frase_corta,1); // obtener array con las palabras.
   
$total_palabras=count($palabras)-1// contar total array elementos y restar 1 elementos
   
$palabras=array_splice($palabras,0,$total_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;
}

$frase="Esto es una prueba de esta funcion.";

echo 
'Frase original: '.$frase.'<br>';
echo 
'Frase cortada: '.cortar_frase($frase,10)."<br>";
?>
Un saludo,

Última edición por Cluster; 21/01/2003 a las 15:42
  #6 (permalink)  
Antiguo 19/03/2003, 18:16
NiP
 
Fecha de Ingreso: enero-2003
Ubicación: Buenos Aires
Mensajes: 40
Antigüedad: 21 años, 2 meses
Puntos: 0
Cluster:
¿Por qué me mandará un error con el str_word_count?
¿Existe? ¿Tengo que habilitar alguna libreria?
Gracias.
  #7 (permalink)  
Antiguo 20/03/2003, 07:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
"me mandará un error" ...

Si no lo detallas no soy adivino .. Pero en principo puede ser por la versión de PHP q uses ..

Cita:
str_word_count
(PHP 4 >= 4.3.0)

str_word_count -- Return information about words used in a string
Esa función es equivalente a hacer por ejemplo un explode() al caraceter " " (espacio) y contar (count()) .. el array que te generea el explode()


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 20/03/2003, 08:37
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 1 mes
Puntos: 1
muy buena la funcion cluster
pero a mi me devuelve esto :
Código PHP:
Frase originalEsto es una prueba de esta funcion.

Fatal errorCall to undefined function: str_word_count() in linea de error 
Un Saludo

Última edición por DINASEN; 20/03/2003 a las 08:41
  #9 (permalink)  
Antiguo 20/03/2003, 09:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
DINASEN!!!!! ..

Leistes que esa funcion solo funciona en PHP 4.3.0 o superiror? .. Que versión de PHP usas? ....

Lee bien los mensajes de error que te dé PHP e intenta entenderlos !!!.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 27/03/2003, 12:33
Avatar de kaiowas  
Fecha de Ingreso: septiembre-2001
Ubicación: el averno...
Mensajes: 531
Antigüedad: 22 años, 7 meses
Puntos: 0
que gran función......


a mi si que me rula a la perfeccion, con php 4.3


saludos y gracias, andaba buscanto algo asi..... y me va perfect
  #11 (permalink)  
Antiguo 27/03/2003, 12:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para los que usen versiones inferiores a PHP 4.3.0 .. usen:

Código PHP:
$palabras=explode(' ',$frase_corta); // obtener array con las palabras. 
en lugar de:
Código PHP:
$palabras=str_word_count($frase_corta,1); // obtener array con las palabras. 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 04/04/2003, 13:41
 
Fecha de Ingreso: julio-2001
Ubicación: Bogota
Mensajes: 87
Antigüedad: 22 años, 9 meses
Puntos: 0
Como se hace esto pero con un campo de una tabla(usando BD mysql)?
ya Cluster me habia publicado algo asi

SELECT SUBSTRING(frase,0,10) as frasecorta FROM tabla

pero a mi no me funciona. si alguien sabe como hacerlo. se lo agradeceria muchisimo.
__________________
=============
JLC
  #13 (permalink)  
Antiguo 04/04/2003, 14:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
joseluiscs

"El no me ha funcionado" es muyyy subjetivo .. no vemos como lees esos datos de la consulta SQL q haces ..

Si tienes problemas con la sintax de SUBSTRING() visita el manual de Mysql oficial: www.mysql.com ...

Te recomiendo que inicies otro mensaje y pongas el código que estás usando para obtener ese dato .. Tal vez no estes teniendo en cuenta que estas haciendo un ALIAS del resultado de aplicar dicha función Mysql ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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.
Tema Cerrado




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