Foros del Web » Programando para Internet » PHP »

duda con busqueda en cadena

Estas en el tema de duda con busqueda en cadena en el foro de PHP en Foros del Web. saludos acudo al foro por una pequeña duda resulta que tengo una serie de archivos de los cuales debo extraer cierta info dentro de los ...
  #1 (permalink)  
Antiguo 13/04/2011, 14:54
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 15 años, 11 meses
Puntos: 0
duda con busqueda en cadena

saludos

acudo al foro por una pequeña duda

resulta que tengo una serie de archivos de los cuales debo extraer cierta info

dentro de los archivos hay frases mas o menos como

"la antena debe ser levantada al menos a 10 metros para librar todos los obstaculos"

yo lo que debo hacer es buscar los metros que diga dicha frase, la frase siempre viene escrita igual, solo cambian los metros, quiero si hay alguna funcion que me permita extraer lo que esta enmedio de 2 palabras clave

por ejemplo funcion($cadena, $frase_inicio, $frase_fin) y me devuelva lo que esta en medio

de antemano gracias
  #2 (permalink)  
Antiguo 13/04/2011, 15:00
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: duda con busqueda en cadena

Umm...La verdad que desconozco si hay alguna funcion que haga lo que vos decís, pero una forma de hacerlo seria usando la funcion explode()
Siempre y cuando, la frase sea siempre EXACTAMENTE igual. Ni una palabra mas.

Seria algo asi:
Código PHP:
$frase 'la antena debe ser levantada al menos a 10 metros para librar todos los obstaculos';

$metros explode(" ",$frase);

echo 
$metros[8];

//Otra forma si los únicos numeros que van a haber en la frase son los que necesitas:

$metros ereg_replace("[^0-9]"""$frase);
echo 
$metros 
Suerte ;)

Última edición por bioxido; 13/04/2011 a las 15:09
  #3 (permalink)  
Antiguo 13/04/2011, 15:22
Avatar de chechu_  
Fecha de Ingreso: mayo-2007
Mensajes: 282
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: duda con busqueda en cadena

Cita:
Iniciado por bioxido Ver Mensaje
Código PHP:
$frase 'la antena debe ser levantada al menos a 10 metros para librar todos los obstaculos';

$metros explode(" ",$frase);

echo 
$metros[8];

//Otra forma si los únicos numeros que van a haber en la frase son los que necesitas:

$metros ereg_replace("[^0-9]"""$frase);
echo 
$metros 
Perdon por meterme, pero tengo una duda personal.

¿No sería así?
$metros = ereg_replace("([^0-9]*)", "", $frase);

¿No es necesario "*" o "{2}" en caso de que existan mas cantidad de numeros?
  #4 (permalink)  
Antiguo 13/04/2011, 16:14
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: duda con busqueda en cadena

chechu_: La verdad que soy un desastre con ese tipo de expresiones... Así que preferiría que tu duda te la aclare alguien más experto en el tema ;).
Puede que tengas razón o no, pero el método que yo usé anda a la perfección no importa la cantidad de números. Extrae todos los números de la variable (al igual que lo que vos escribiste, lo acabo de probar...)

De todas formas, lo que Thanatos_ necesita, hasta donde yo entendí, es extraer solamente la cantidad de metros, y no debería haber ningún otro número en la variable.
  #5 (permalink)  
Antiguo 13/04/2011, 16:59
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: duda con busqueda en cadena

Cita:
Iniciado por bioxido Ver Mensaje
chechu_: La verdad que soy un desastre con ese tipo de expresiones... Así que preferiría que tu duda te la aclare alguien más experto en el tema ;).
Puede que tengas razón o no, pero el método que yo usé anda a la perfección no importa la cantidad de números. Extrae todos los números de la variable (al igual que lo que vos escribiste, lo acabo de probar...)
Yo coincido con chechu_ ya que si pone dos números el resultado de la cadena son los dos números juntos. Si hubiera un 1 al inico de la frase mostraría 18. ¿Como los separas ahora si no sabes la longitud de los números?
Así que yo añadiría el * y que extraiga el primer número.

Pero para rizar el rizo y aunque Thanatos_ avisa que la frase no varía, mejor usar algo que pueda servir tanto si es similar o totalmente diferente:

Código PHP:
Ver original
  1. $frase = 'la antena debe ser levantada al menos a 8 metros para librar todos los obstaculos';
  2. preg_match('/\d+/', $frase, $valores);
  3. echo $valores[0]; // primer numero que encuentre
  4.  
  5. //Los siguientes, sólo cambiar el índice de $valores

Y yo tampoco me quedaría contento con este ejemplo y sería aún más exigente, pero ya Thanatos tiene más colores para elegir a su gusto xD.

Un saludo
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #6 (permalink)  
Antiguo 13/04/2011, 21:52
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: duda con busqueda en cadena

jejeje, gracias por la ayuda

checando los archivos me quede con la opcion del

$metros = explode(" ",$frase);

y pss tomar la posicion corresponiente, ya probe como con 100 archivos y la posicion siempre es la misma asi que debe servir xDD

se me hiso lo mas facil por que aparte de dicha frase, los archivos traen un buen de informacion aparte que no me sirve, solo ocupo dicha parte del archivo

muchas gracias por la ayuda =D

Etiquetas: busquedas, cadenas
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 17:46.