elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:41  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  [preg_match_all] no se que hace esta linea
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [preg_match_all] no se que hace esta linea  (Leído 854 veces)
Frost

Desconectado Desconectado

Mensajes: 259


go Debian


Ver Perfil WWW
[preg_match_all] no se que hace esta linea
« en: 5 Enero 2012, 15:06 »

En realidad no estoy seguro que es lo que hace esta linea, quien me puede explicar un poco

se está ocupando para buscar dentro de un .xml y hay algo que hace que falle en la lectura pero me topé con esta linea y no tengo claro lo que hace

Código:
$result=preg_match_all("/(<FORMULARIO>.*?<\/FORMULARIO>.*?)/s", $datos2, $archivos);



segun php.net "preg_match_all — Realiza una comparación global de una expresión regular"

la parte que no comprendo es la expresión regular

saludos


En línea

Etex

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: [preg_match_all] no se que hace esta linea
« Respuesta #1 en: 5 Enero 2012, 15:25 »

Te lo explico para que lo entiendas:

Sirve para buscar valores con condiciones que cumpla el string.
En ese caso, busca valores que esten entre las etiquetas "Formulario" del XML

Deberias leer algun tutorial de expresion regulares para que las entiendas mejor.

Código:
http://www.manualdephp.com/codigos-php/expresiones-regulares-php.html

Hay varios muy buenos

Saludos


En línea
Frost

Desconectado Desconectado

Mensajes: 259


go Debian


Ver Perfil WWW
Re: [preg_match_all] no se que hace esta linea
« Respuesta #2 en: 5 Enero 2012, 15:46 »

ok gracias

"El punto . como metacaracter" entiendo entonces que efectivamente esta buscando todo lo que se encuentre entre <FORMULARIO></FORMULARIO>

pero que pasa con *?

Citar
*   ==>El asterisco indica que el carácter que lo precede puede aparecer cero, una, o más veces. Por ejemplo, "0*42" casa con 42, 042, 0042, 00042, etcétera.


?  ==> El signo de interrogación indica que el carácter al que sigue puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" casa con oscuro y obscuro

saludos
En línea

Etex

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: [preg_match_all] no se que hace esta linea
« Respuesta #3 en: 5 Enero 2012, 16:07 »

El * quiere decir puede haber 0 o mas caracteres del . (cualquier caracter). Es decir si solo pongo . (punto) solo seria un caracter, pero si pongo .* seria de 0 a mas caracteres.

Espero que no te haya mezclado.

Saludos
En línea
‭lipman


Desconectado Desconectado

Mensajes: 2.872



Ver Perfil WWW
Re: [preg_match_all] no se que hace esta linea
« Respuesta #4 en: 5 Enero 2012, 16:37 »

Y porqué aparece el interrogante seguido del asterisco?
En línea

Twitter: jmlipman

http://delanover.com

Busco redactores para mi blog.
drvy | BSM


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


Ver Perfil WWW
Re: [preg_match_all] no se que hace esta linea
« Respuesta #5 en: 5 Enero 2012, 17:45 »

Hola

el *? significa, 0 o mas pero ungreedy.

Si la expresión es greedy (sin el ?), esta consumirá todos los caracteres (comprobara todo) antes de finalizar.
Si es ungreedy (con el ?) (equivalente a {0,1}), esta consumirá lo menos posible.

La explicación aquí en ingles:
Código:
http://www.skdevelopment.com/php-regular-expressions.php

Os recomiendo este cheetsheet sobre expresiones regulares:
Código:
http://www.addedbytes.com/cheat-sheets/download/regular-expressions-cheat-sheet-v2.png

Saludos
En línea
Frost

Desconectado Desconectado

Mensajes: 259


go Debian


Ver Perfil WWW
Re: [preg_match_all] no se que hace esta linea
« Respuesta #6 en: 5 Enero 2012, 19:37 »

ok gracias voy a revisar esto

saludos
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: [preg_match_all] no se que hace esta linea
« Respuesta #7 en: 7 Enero 2012, 05:45 »

Te recomiendo esta pagina para testear las expresiones regulares:

http://regex.larsolavtorvik.com/

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Esta en linea o me omite ??
Chats; IRC y Messengers
ploko 1 402 Último mensaje 2 Junio 2003, 19:24
por Lmcrackk
que significa esta linea
Programación C/C++
mapers 3 727 Último mensaje 13 Julio 2010, 21:12
por Horricreu
Comandos de Linea , como se hace ?
ASM
JorGe[xD] 4 1,146 Último mensaje 29 Agosto 2010, 16:21
por JorGe[xD]
mi linea esta lenta
Redes
Choclito 7 1,886 Último mensaje 26 Enero 2011, 01:26
por -=[ §ÂßÂÑÐØ ]=-
Problema con preg_match_all()
PHP
Feedeex 2 1,249 Último mensaje 21 Agosto 2011, 22:58
por ~ Yoya ~
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines