Foros del Web » Programando para Internet » PHP »

Cómo saber las cadenas recuperadas tras una búsqueda

Estas en el tema de Cómo saber las cadenas recuperadas tras una búsqueda en el foro de PHP en Foros del Web. Hola a todos: Necesito saber qué función (o funciones) puedo utilizar para hacer lo siguiente: 1.º Teniendo una cadena dada 2.º Busco en otra cadena ...
  #1 (permalink)  
Antiguo 10/02/2009, 15:02
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 8
Cómo saber las cadenas recuperadas tras una búsqueda

Hola a todos:

Necesito saber qué función (o funciones) puedo utilizar para hacer lo siguiente:

1.º Teniendo una cadena dada

2.º Busco en otra cadena

3.º Quiero que el sistema me devuelva cada una de las coincidencias en una lista mediante echo, print o en una matriz. Lo importante es que me lo saque cada una de las coincidencias (sean en mayúsculas o minúsculas).

Ya he estado viendo algunas funciones pero la mayoría busca o busca y reemplaza, pero no me devuelve lo que quiero.

He estado mirando la función eregi, pero no sé si el tercer parámetro me serviría (array $regs, en la página de documentación PHP).

Gracias por adelantado y un saludo.

Última edición por GatorV; 10/02/2009 a las 17:10
  #2 (permalink)  
Antiguo 10/02/2009, 15:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cómo saber las cadenas recuperadas tras una búsqueda

de hecho, esa es tu solución.... expresiones regulares

consulta este tema, y revisa el manual de PHP

http://www.forosdelweb.com/f18/aport...s-pcre-646110/

lo digo, por que de hecho la función preg_match/_all() captura las coincidencias en su tercer parámetro cono ereg()

Código PHP:
preg_match_all('/./i''aeiou'$foo);

print_r($foo); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/02/2009, 16:36
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Cómo saber las cadenas recuperadas tras una búsqueda

Hola pateketrueke:

He estado probando las opciones que me has mostrado pero no hace lo que quiero. Quizás lo que más se ajuste sería algo como esto:

<?php
$txt = "españa España Francia";
eregi("españa", $txt, $array);
print_r($array); // Esta función debiera mostrarme "españa" y "España", y sólo me muestra "españa" como $array[0] que corresponde al patrón, siendo [1] las coincidencias.
?>

También empleé count($array) para saber cuántos elementos había en la matriz y sólo me devolvía "1" que corresponde a $array[0], de nuevo, cuando yo esperaba "3".

La función preg_match_all() no se ejecuta. Es probable que esté haciendo algo mal.

Gracias por la atención y recibe un saludo,

Última edición por GatorV; 10/02/2009 a las 17:10
  #4 (permalink)  
Antiguo 10/02/2009, 16:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cómo saber las cadenas recuperadas tras una búsqueda

un ejemplo....

Código PHP:
$txt "españa España Francia";

preg_match_all("/españa/i"$txt$array);



print_r($array); 
y va muy bien... ¿seguro que leíste todo???

http://www.forosdelweb.com/f18/aport...s-pcre-646110/

ya que no es lo mismo ereg que preg la expresión debe tener separadores, y debes especificar la opción i (insensible a Mayúsculas/minúsculas)



--
(me pregunto si de verdad leíste)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 10/02/2009, 17:03
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 8
De acuerdo Respuesta: Cómo saber las cadenas recuperadas tras una búsqueda

Hola de nuevo:

Ya funciona, muchísimas gracias. Mi problema eran los separadores. Tendré que estudiarlos más detenidamente.

Gracias de nuevo y un saludo.

Última edición por GatorV; 10/02/2009 a las 17:09
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:11.