elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [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 3,701 veces)
Frost

Desconectado Desconectado

Mensajes: 260


go Debian


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

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 pm »

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: 260


go Debian


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

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 pm »

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: 3.062



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

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

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



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

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: 260


go Debian


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

ok gracias voy a revisar esto

saludos
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



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

Te recomiendo esta pagina para testear las expresiones regulares:

http://regex.larsolavtorvik.com/

Saludos.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
que significa esta linea
Programación C/C++
mapers 3 2,543 Último mensaje 13 Julio 2010, 21:12 pm
por Horricreu
Comandos de Linea , como se hace ?
ASM
JorGe[xD] 4 3,619 Último mensaje 29 Agosto 2010, 16:21 pm
por JorGe[xD]
Problema con preg_match_all()
PHP
Feedeex 2 2,931 Último mensaje 21 Agosto 2011, 22:58 pm
por ~ Yoya ~
Acceder al parametro array de preg_match_all
PHP
franfis 4 2,208 Último mensaje 25 Marzo 2014, 08:38 am
por engel lex
[C] ¿Qué hace este while de una sola linea?
Programación C/C++
GGZ 9 3,765 Último mensaje 25 Noviembre 2015, 07:37 am
por class_OpenGL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines