Foros del Web » Programando para Internet » PHP »

Funcion php que tome una parte de una campo de texto

Estas en el tema de Funcion php que tome una parte de una campo de texto en el foro de PHP en Foros del Web. Hola Quisiera saber si existe una función en php o un método que pueda sustraer una parte de una campo de texto(tipo text) de una ...
  #1 (permalink)  
Antiguo 21/06/2013, 18:34
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Funcion php que tome una parte de una campo de texto

Hola

Quisiera saber si existe una función en php o un método que pueda sustraer una parte de una campo de texto(tipo text) de una base de datos de mysql hecha en phpmyadmin.
Por ejemplo tengo un campo de texto de una base de datos que tiene mucho texto(500 palabras) y solo quiero de ese campo las 10 primeras palabras.

Me pueden ayudar. Gracias.
  #2 (permalink)  
Antiguo 21/06/2013, 19:51
Avatar de yemilgr  
Fecha de Ingreso: junio-2011
Ubicación: Havana
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Funcion php que tome una parte de una campo de texto

Hola

Mysql tiene muchas funciones para usar una de ella es SUBSTRING
para devolver una parte de una cadena

La referecia mysql esta aqui http://dev.mysql.com/doc/refman/5.0/es/string-functions.html

saludos
  #3 (permalink)  
Antiguo 21/06/2013, 20:23
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Funcion php que tome una parte de una campo de texto

Le digo como hacerlo con PHP

1) Separa las palabras por los espacios con explode(), vea como es:

Cita:
explode ( string $delimiter , string $string [, int $limit ] )
seria...

Cita:
$array_palabras = trim(explode ($tu_string , ' ',10));
2) Las vuelve a unir con implode():

Cita:
$array_palabras = trim(explode ($tu_string , ' ',10));
$pocas_plabras = implode (' ',$array_palabras);

Logicamente tiene FALLAS... por ejemplo, no considera espacios multiples ni comas ni parentesis... nada de eso y es INEFICIENTE... lo mejor seria hacer esto otro:

Cortar la cadena despues de que se hayan encontrado 10 espacios (tampoco es perfecto)
__________________
Salu2!
  #4 (permalink)  
Antiguo 21/06/2013, 21:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Funcion php que tome una parte de una campo de texto

Usando MySQL lo puedes hacer en la misma consulta, usando la funcion SUBSTRING_INDEX():
Código MySQL:
Ver original
  1. mysql> SELECT SUBSTRING_INDEX('uno dos tres cuatro cinco seis siete ocho nueve diez once doce', ' ', 10) resultado;
  2. +------------------------------------------------------+
  3. | resultado                                            |
  4. +------------------------------------------------------+
  5. | uno dos tres cuatro cinco seis siete ocho nueve diez |
  6. +------------------------------------------------------+
  7. 1 row in set (0.00 sec)
El parámetro numérico puede ser negativo o positivo. Cuando es positivo, cuenta las apariciones de la cadena buscada desde la izquierda, pero cuando es negativo lo hace desde la derecha:
Código MySQL:
Ver original
  1. mysql> SELECT SUBSTRING_INDEX('uno dos tres cuatro cinco seis siete ocho nueve diez once doce', ' ', -10) resultado;
  2. +--------------------------------------------------------+
  3. | resultado                                              |
  4. +--------------------------------------------------------+
  5. | tres cuatro cinco seis siete ocho nueve diez once doce |
  6. +--------------------------------------------------------+
  7. 1 row in set (0.05 sec)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 21/06/2013, 23:57
Avatar de vesper_metal90  
Fecha de Ingreso: enero-2013
Mensajes: 103
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Funcion php que tome una parte de una campo de texto

Desde php puedes usar la funcion que se llama substr mira http://php.net/manual/es/function.substr.php

Código PHP:
Ver original
  1. <?php
  2.        
  3.         $cadena = "Hola amigo como estas";
  4.         echo trim(substr($cadena, 0,10));
  5.        
  6.         ?>
  #6 (permalink)  
Antiguo 22/06/2013, 00:22
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Funcion php que tome una parte de una campo de texto

Cita:
Iniciado por vesper_metal90 Ver Mensaje
Desde php puedes usar la funcion que se llama substr mira http://php.net/manual/es/function.substr.php

Código PHP:
Ver original
  1. <?php
  2.        
  3.         $cadena = "Hola amigo como estas";
  4.         echo trim(substr($cadena, 0,10));
  5.        
  6.         ?>
Quiere 10 palabras.... no diez caracteres

__________________
Salu2!
  #7 (permalink)  
Antiguo 24/06/2013, 15:13
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Funcion php que tome una parte de una campo de texto

Usando MySQL lo puedes hacer en la misma consulta, usando la funcion SUBSTRING_INDEX():
Código MySQL:

Cita:
mysql> SELECT SUBSTRING_INDEX('uno dos tres cuatro cinco seis siete ocho nueve diez once doce', ' ', 10) resultado;
+------------------------------------------------------+
| resultado |
+------------------------------------------------------+
| uno dos tres cuatro cinco seis siete ocho nueve diez |
+------------------------------------------------------+
1 row IN SET (0.00 sec)
Probé este código desde la interface de PHPMyAdmin en la seccion SQL y no me salio.
También pude este codigo dentro de mi codigo php Y tampoco me salió, Me dice error fatal, y me aparece el mensaje : call no undefined funcion SUBSTRING_INDEX.
Aclaración: El argumento donde va el string , yo reemplazo por el campo de mi base de datos llamado $desarrollo. Este campo es de tipo text.

Ejemplo
SUBSTRING_INDEX($desarrollo, '.', 10)

Me ayudan de vuelta. Gracias.
  #8 (permalink)  
Antiguo 24/06/2013, 17:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Funcion php que tome una parte de una campo de texto

Código MySQL:
Ver original
  1. SUBSTRING_INDEX($desarrollo, '.', 10)
Esto busca palabras que se separen por puntos, y no las últimas diez palabras considerandolas separadas por espacios. En todo caso estás buscando las últimas diez oraciones, en tanto estén correctamente escritas.
Creo que deberías tener más cuidado con lo que copias.

Pos otro lado, probé el ejemplo en el phpMyadmin, y obtuve el mismo resultado. deduzco que debiste poner que busque el separador incorrecto, y por eso no tienes resultados.

Por otro lado, recuerda que esa es una solución de MySQL, no de PHP, por lo que no puedes usarla dentro de PHP.

¿Podrías posterar el código completo que usaste para probarlo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, funcion, mysql, parte
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 00:14.