Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como Obtener datos de variables

Estas en el tema de Como Obtener datos de variables en el foro de PHP en Foros del Web. hola a todos estoy tratando de obtener los datos de la variable "id" que estan en un texto utilizo expresiones regulares pero no funciona no ...
  #1 (permalink)  
Antiguo 16/10/2014, 15:51
 
Fecha de Ingreso: enero-2011
Mensajes: 47
Antigüedad: 13 años, 10 meses
Puntos: 0
Como Obtener datos de variables

hola a todos

estoy tratando de obtener los datos de la variable "id" que estan en un texto utilizo expresiones regulares pero no funciona no se que sucede.


$datos="hola a todos https://www.miweb.com/profile?id=Vdgafd88CC"

preg_match('|https://www.miweb.com/profile?id=(.*?)"|is' ,$datos, $matches );


echo $matches[0];
  #2 (permalink)  
Antiguo 16/10/2014, 16:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Como Obtener datos de variables

No funciona porque una expresión regular contiene caracteres especiales que significan muchas cosas, por ejemplo: el punto.

El punto (.) jamás se toma como un punto literal, dentro de una expresión regular simboliza "cualquier carácter" y deberías saber eso.

Lo mismo sucede con el símbolo de interrogación (?) que significa "que la expresión que le preceda sea opcional" y vamos, también deberías saber eso.

Por cosas tan básicas como esas es que tu expresión regular no sirve para lo que piensas: porque tienes caracteres especiales que modifican tu intención original.

Otro detalle bastante grave ¿si te das cuenta que hay una comilla doble al final de tu expresión? ¿justo después del (.*?)"?

Eso entorpece la expresión.

¿Por qué?

Porque dicha comilla no existe en el texto que analizas, por ende jamás lo encontrará.

Por último, el uso de (.*?) tiene un significado algo complicado que deberías consultar también en una referencia de expresiones regulares.

En resumen, esto sí funciona:

Código PHP:
Ver original
  1. $datos="hola a todos https://www.miweb.com/profile?id=Vdgafd88CC";
  2.  
  3. preg_match('|https://www\.miweb\.com/profile\?id=(.+)|is' ,$datos, $matches );
  4.  
  5. echo $matches[1];

Por favor: consulta una referencia de expresiones regulares.

No olvides visitar el sub-foro de expresiones regulares.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/10/2014, 16:07
 
Fecha de Ingreso: enero-2011
Mensajes: 47
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Como Obtener datos de variables

Muchas gracias por tu aporte soluciono el problema inmediatamente!!!!

Etiquetas: variable, variables
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 22:23.