Foros del Web » Programando para Internet » PHP »

seleccion de palabras con php

Estas en el tema de seleccion de palabras con php en el foro de PHP en Foros del Web. Hola , tengo un archivo txt con palabras y de esa lista quisiera con php seleccionar palabras con un filtro , ej , quiero que ...
  #1 (permalink)  
Antiguo 11/07/2011, 18:04
 
Fecha de Ingreso: julio-2011
Mensajes: 38
Antigüedad: 13 años, 4 meses
Puntos: 1
Pregunta seleccion de palabras con php

Hola , tengo un archivo txt con palabras y de esa lista quisiera con php seleccionar palabras con un filtro , ej , quiero que seleccione las palabras que terminen con "cion" , y que me las imprima en pantalla.

para leer el txt y imprimirlo en pantalla uso :

Código PHP:

$lines
file("archivo.txt");

foreach(
$lines as $line)
{
  
   echo(
$line)."<br/>";
    

pero nose como hacer para poner un filtro , (palabras que terminen en "cion") y que esas palabras me las guarde en un array vacío , para luego imprimirlas

osea , recorer la lista y seleccionar solo las palabras con esa características


si alguien me puede ayudar , le agradecería
  #2 (permalink)  
Antiguo 11/07/2011, 18:06
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: seleccion de palabras con php

Imagino que es para una tarea...
Investiga sobre strpos o stripos
  #3 (permalink)  
Antiguo 11/07/2011, 18:07
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 14 años, 1 mes
Puntos: 511
Respuesta: seleccion de palabras con php

Hola juanmanuelk bienvenido al foro.

Te recomiendo que pases por la wiki ahí encontraras un buen manual que te ayudará a desarrollar tu conocimiento y entendimiento de la programación con el cual te podrás desenvolver.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 14/07/2011, 10:07
 
Fecha de Ingreso: julio-2011
Mensajes: 38
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: seleccion de palabras con php

Cita:
Iniciado por ocp001a Ver Mensaje
Imagino que es para una tarea...
Investiga sobre [URL="http://php.net/manual/en/function.strpos.php"]strpos [/URL]o [URL="http://php.net/manual/en/function.stripos.php"]stripos[/URL]
Hola, no es para una tarea..., es una meta personal que se me ocurrio para aprender un poquito mas y practicar , pero me estanque.

gracias por la data, , voy a investigar un poco mas sobre esta.

saludos
  #5 (permalink)  
Antiguo 14/07/2011, 10:20
 
Fecha de Ingreso: julio-2011
Mensajes: 38
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: seleccion de palabras con php

Cita:
Iniciado por skiper0125 Ver Mensaje
Hola juanmanuelk bienvenido al foro.

Te recomiendo que pases por la wiki ahí encontraras un buen manual que te ayudará a desarrollar tu conocimiento y entendimiento de la programación con el cual te podrás desenvolver.

Saludos
Hola , estuve investigando , pero no encontré la función adecuada para realizar esto , o quizas no la supe implementar.

mi duda es sobre la herramienta que tengo que usar para realizar esa funcion y el razonamiento que estoy implementando...

nose si realmente con $lines = file("archivo.txt") me almacena automaticamente la data del txt en un array.

y pienso yo que el razonamiento correcto es , que adentro del foreach de $lines tengo que preguntar si tal palabra termina con "cion" , si es asi ahi almacenar los datos en una variable vacía , y despues imprimir esta variable

Gracias , Saludos!
  #6 (permalink)  
Antiguo 15/07/2011, 02:38
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: seleccion de palabras con php

La idea está en los enlaces que te pasaron por ahí arriba, pero la tienes que desarrollar mucho más. La función stripos ($texto , $cadena) te devuelve la primera posición en que aparece la $cadena en el $texto. La idea sería más o menos así:

1. Lees el fichero.
2. Buscas la primera aparición de "cion" en el fichero, la función te devuelve el índice de la cadena donde empieza el trozo buscado.
3. Con el índice extraes la palabra entera.
4. Borras toda la primera parte de la cadena, quedándote con el resto.
5. Vuelves a 2

Espero que te sirva como idea para seguir, un saludo.
  #7 (permalink)  
Antiguo 15/07/2011, 20:49
 
Fecha de Ingreso: julio-2011
Mensajes: 38
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: seleccion de palabras con php

Cita:
Iniciado por vgonga1986 Ver Mensaje
La idea está en los enlaces que te pasaron por ahí arriba, pero la tienes que desarrollar mucho más. La función stripos ($texto , $cadena) te devuelve la primera posición en que aparece la $cadena en el $texto. La idea sería más o menos así:

1. Lees el fichero.
2. Buscas la primera aparición de "cion" en el fichero, la función te devuelve el índice de la cadena donde empieza el trozo buscado.
3. Con el índice extraes la palabra entera.
4. Borras toda la primera parte de la cadena, quedándote con el resto.
5. Vuelves a 2

Espero que te sirva como idea para seguir, un saludo.
Hola , gracias por tu ayuda ,

con que funcion puedo extraer el texto entero , porque por ejemplo , si tengo la palabra "cancion" con strpos me va a devolver "4", como identifico cuantas letras tiene por delante? y como la extraigo

y que funcion uso para borrar parte de un cadena ?

pregunto , no hay una funcion estilo strpos , pero para array , que me devuelva en que key esta ubicada?

o sino ubicar las palabras en filas y que me diga en que fila esta ubicada?



Gracias
  #8 (permalink)  
Antiguo 17/07/2011, 14:08
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: seleccion de palabras con php

Buenas, perdona la tardanza, pero en fines de semana lo tengo realmente difícil para conectarme. Te paso la página del manual de PHP para cadenas:

http://php.net/manual/es/book.strings.php

Te pueden interesar las siguientes sobre todo:
- stripos: con esta función puedes encontrar la primera aparición de "cion" o "ción".
- strlen: extraes la longitud de la cadena.
- substr: con esta función puedes separar la cadena en dos partes: en [0, stripos + 4] tienes la primera parte de la cadena hasta la palabra terminada en "cion" (con esta incluida) y en (stripos + 4, strlen] tienes el resto de la cadena.
- strripos: con esta función, aplicada sobre la primera parte, puedes buscar la última aparición de un espacio, así tendrás el índice en el que comienza la última palabra, que precisamente es la acabada en "cion".

Creo que con eso tienes suficiente, la verdad que es un poco complejo, pero teniendo las cosas claras, se puede hacer sin mucho problema.

Espero que te sirva, un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #9 (permalink)  
Antiguo 17/07/2011, 14:28
Avatar de duskrow  
Fecha de Ingreso: abril-2008
Mensajes: 267
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: seleccion de palabras con php

Código PHP:
Ver original
  1. $lines = file("archivo.txt");
  2. foreach($lines as $line){
  3.   if( substr ($line, -4, 4) == 'cion'){
  4.     echo $line."<br />";
  5.     }
  6. }


saludos
__________________
"El sabio no dice lo que piensa,pero piensa lo que dice"
Att Miguel Lomeli
Visita mi Blog
  #10 (permalink)  
Antiguo 23/07/2011, 12:50
 
Fecha de Ingreso: julio-2011
Mensajes: 38
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: seleccion de palabras con php

Cita:
Iniciado por duskrow Ver Mensaje
Código PHP:
Ver original
  1. $lines = file("archivo.txt");
  2. foreach($lines as $line){
  3.   if( substr ($line, -4, 4) == 'cion'){
  4.     echo $line."<br />";
  5.     }
  6. }


saludos

Gracias por tu ayuda, el unico problema que tengo es que al hacerlo de esa manera me da como resultado la ultima palabra de la lista que termina en "cion".

pero por ejemplo si el array no es de un archivo txt ahi si te tira todos los resultados.

ej:

Código PHP:
$lines = array("perro""gato""pato""oso");
foreach(
$lines as $line){
  if( 
substr ($line, -22) == 'to'){
    echo 
$line."<br />";
}
}

//aca si te da como resultado gato y pato 
pero desde el archivo txt

Código PHP:
$lines file("palabras.txt");

foreach(
$lines as $line){
  if( 
substr ($line, -22) == 'to'){
    echo 
$line."<br />";
    }
}

// teniendo las mismas palabras te da como resultado solo pato 
porque sucede esto ??

Gracias
  #11 (permalink)  
Antiguo 09/08/2011, 15:47
 
Fecha de Ingreso: julio-2011
Mensajes: 38
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: seleccion de palabras con php

Ya solucione mi problema de esta formula

Código PHP:
Ver original
  1. $lines = file("palabras.txt");
  2. foreach($lines as $line){
  3.   if( ereg (".cionl", $line)){
  4.     echo $line."<br />";
  5.     }
  6. }

pero sigo sin entender la pregunta que puse arriba en el comentario anterior..

gracias por ayudar
  #12 (permalink)  
Antiguo 09/08/2011, 16:39
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: seleccion de palabras con php

Bueno no me gusta usar funciones obsoletas y ereg:

Cita:
Esta función ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.
Aunque no creo que se deban usar expresiones regulares para algo así es mejor hacer:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $lines = file("prueba.txt");
  4. foreach ($lines as $line) {
  5.     if (preg_match("/.cion/i", $line)) {
  6.         echo $line . "<br />";
  7.     }
  8. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 09/08/2011 a las 16:51

Etiquetas: lectura, listado, txt, filtros
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 09:23.