Foros del Web » Programando para Internet » PHP »

ayuda con regex pcre

Estas en el tema de ayuda con regex pcre en el foro de PHP en Foros del Web. quiero capturar todo un formulario si es que hay en un sitio, el tema esque el codigo para el inicio del formulario es asi <form[^>]+action=[\"'](\S*)[\"'][^>]*> ...
  #1 (permalink)  
Antiguo 30/09/2006, 16:02
Avatar de ASCENDEDMASTERS  
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 18 años, 9 meses
Puntos: 1
ayuda con regex pcre

quiero capturar todo un formulario si es que hay en un sitio, el tema esque el codigo para el inicio del formulario es asi

<form[^>]+action=[\"'](\S*)[\"'][^>]*>

hasta ahi todo ok, pero despues estan los <imput ... > y luego se cierra el formulario con </form>

entonces necesito poner algo en el medio que represente cualquier cosa cualquier cantidad y hice asi

<form[^>]+action=[\"'](\S*)[\"'][^>]*>(.*)<\/form>

pero no me funciona, y me han dicho que eso de .* esta mal. Como sería entonces? probe y nose como ponerlo
__________________
Dios es la unica fuente de todo bien.
  #2 (permalink)  
Antiguo 30/09/2006, 18:34
Avatar de ASCENDEDMASTERS  
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 18 años, 9 meses
Puntos: 1
listo, solucione el problema reemplazando (.*) por ([^\\\]+)


total esto ultimo no va a aparecer . va mmm, en el ejemplo que use no aparecia, ese es el problema por eso llego hasta el </form> y se completo la coincidencia. o como sería lo ideal?

tiene que ser cualquier cosa que aparezca PERO, hasta encontrar </form>
__________________
Dios es la unica fuente de todo bien.
  #3 (permalink)  
Antiguo 30/09/2006, 20:41
Avatar de seyacat  
Fecha de Ingreso: agosto-2006
Mensajes: 382
Antigüedad: 17 años, 8 meses
Puntos: 0
El problema de usar .* es que el (.) es cualquier caracter menos el salto de linea \n o \r que al momento de escribir el codigo existen.

Podrias solucionar si eliminas estos caracteres de tu string con str_replace, o tambien incluyendolos en la busqueda [\s.]*

Pero bueno si te ha dado resultado tu forma en hora buena :)
  #4 (permalink)  
Antiguo 01/10/2006, 10:14
Avatar de ASCENDEDMASTERS  
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 18 años, 9 meses
Puntos: 1
ya lo solucione, gracias.

Ahora tengo otro problema en otra sentencia. es que me diferencia entre mayusculas y minusculas :S

Código PHP:
<?

function abc($coin)
{
......
.....
}


$aaa1='añldkjfañslk <IMG SRC="añlskjfañ/sñkfjañ/img.jpg' ....>;

echo 
htmlspecialchars(preg_replace_callback("/<(img)[^>]+src=[\"'](.*?)[\"'][^>]*>/i","abc",$aaa1));

// esto no me detecta nada en $aaa1, pero si pongo el tag de imagen todo el minuscula si, y eso que ya lo puse con l /i :S
?>
__________________
Dios es la unica fuente de todo bien.
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 23:18.