Foros del Web » Programando para Internet » PHP »

Duda sobre Preg_match

Estas en el tema de Duda sobre Preg_match en el foro de PHP en Foros del Web. Bueno, actualmente estoy trabajando con preg_match en el codigo fuente de una pagina web externa, obtengo el codigo fuente de otra pagina, lo almaceno en ...
  #1 (permalink)  
Antiguo 03/01/2010, 11:24
 
Fecha de Ingreso: diciembre-2009
Mensajes: 30
Antigüedad: 14 años, 4 meses
Puntos: 0
Duda sobre Preg_match

Bueno, actualmente estoy trabajando con preg_match en el codigo fuente de una pagina web externa, obtengo el codigo fuente de otra pagina, lo almaceno en una variable y a esta le aplico preg_match, para los "/" sé que debo anteponer un "\" para que no se cierre antes de tiempo y me arroje error, pero cuando tengo parentesis () no sé como hacerlo, porque tiene un estilo css rgb(xxxx) y al momento de pedir que almacene el contenido que quiero (.*) en el array no me muetra nada, y estoy casi seguro de que es por eso. les dejo la parte donde tengo el conflicto

Código HTML:
preg_match('/<font style="font-family: arial; color: rgb(0, 0, 0); font-size: 13px; font-weight: bold; line-height: 22px;">File size:<\/font> <font style="font-family: arial; color: rgb(0, 0, 0); font-size: 13px;">(.*)<\/font>/', $contents, $filesize);
$contents es el codigo fuente
$filesize es lo que quiero obtener, el peso del fichero
  #2 (permalink)  
Antiguo 03/01/2010, 11:29
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Duda sobre Preg_match

Las barras de las expresiones regulares tienen que ser dobles sino no funcionan. Quedaria asi

<\\/font>

Con los parantesis lo mismo, pon dos barras antes de cada parentesis.
  #3 (permalink)  
Antiguo 03/01/2010, 11:40
 
Fecha de Ingreso: diciembre-2009
Mensajes: 30
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Duda sobre Preg_match

entendido :D, muchas gracias EL-Fenix
  #4 (permalink)  
Antiguo 03/01/2010, 11:48
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Duda sobre Preg_match

Los caracteres especiales de expresiones regulares son: . \ + * ? [ ^ ] $ ( ) { } = ! < > | :
si quieres usar alguno de estos como un caracter, debes escaparlo anteponiendo una \
__________________
Degiovanni Emilio
developtus.com
  #5 (permalink)  
Antiguo 03/01/2010, 18:33
 
Fecha de Ingreso: diciembre-2009
Mensajes: 30
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Duda sobre Preg_match

la verdad es que no me ha funcionado, sigue devolviendome el array vacio, lo veo con print_r pero nada, como deberia colocar este codigo en preg_match para que me devuelva el peso tamaño del archivo?

Código HTML:
<font style="font-family:arial; color:#000000; font-size:13px; font-weight:bold; line-height:22px;">File size:</font> <font style="font-family:arial; color:#000000; font-size:13px;">5.64 MB</font> 
eso de los 5.64 MB
  #6 (permalink)  
Antiguo 03/01/2010, 18:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Duda sobre Preg_match

yo primero usaría strip_tags() sobre el texto, y ya luego aplicaría una expresión mas simple...
Cita:
/File size:\s+([0-9\.]+)\s+(MB|KB|B)/Uis
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 03/01/2010, 18:47
 
Fecha de Ingreso: diciembre-2009
Mensajes: 30
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Duda sobre Preg_match

Cita:
Iniciado por pateketrueke Ver Mensaje
yo primero usaría strip_tags() sobre el texto, y ya luego aplicaría una expresión mas simple...
tu dices al codigo fuente que se obtiene de la pagina? o ya a la linea en si?
lo digo porque el peso es dinamico, dependiendo del archivo te arroja otro peso, por eso utilizo preg_match.
  #8 (permalink)  
Antiguo 03/01/2010, 18:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Duda sobre Preg_match

bueno, pues eso depende de que hayas entendido...

o mejor dicho: depende de lo que quieras utilizar, o como lo haces... si usas una sola linea, pues ahí, si es todo el código generado... también ahí!!

aunque por lo que veo, debería ser sobre la variable de donde quieres extraer la información... osea $contents, o no?

Edito: precisamente el poder de las expresiones regulares es que son dinámicas, siempre y cuando las escribas bien... así que sin importar el valor que sea, siempre tiene un formato parecido... y es ahí donde funcionan perfectamente!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 03/01/2010, 18:54
 
Fecha de Ingreso: diciembre-2009
Mensajes: 30
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Duda sobre Preg_match

Cita:
Iniciado por pateketrueke Ver Mensaje
bueno, pues eso depende de que hayas entendido...

o mejor dicho: depende de lo que quieras utilizar, o como lo haces... si usas una sola linea, pues ahí, si es todo el código generado... también ahí!!

aunque por lo que veo, debería ser sobre la variable de donde quieres extraer la información... osea $contents, o no?

Edito: precisamente el poder de las expresiones regulares es que son dinámicas, siempre y cuando las escribas bien... así que sin importar el valor que sea, siempre tiene un formato parecido... y es ahí donde funcionan perfectamente!!
Gracias por tu ayuda, realmente te lo agradezco, implementare strip_tags() sobre $contents y te menciono que sucede, repito muchas gracias, porque tambien me diste otra idea de como hacerlo si no resulta.
  #10 (permalink)  
Antiguo 03/01/2010, 19:10
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Duda sobre Preg_match

A mi si me funciona....

Código PHP:
$content strip_tags('<font style="font-family:arial; color:#000000; font-size:13px; font-weight:bold; line-height:22px;">File size:</font> <font style="font-family:arial; color:#000000; font-size:13px;">5.64 MB</font>');

if (!
preg_match('/File size:\s+([0-9\.]+)\s+(MB|KB|B)/Uis'$content$matches))
  die(
'Ha ocurrido un error al intentar obtener el tamaño del archivo');

print_r($matches); 

Etiquetas: Ninguno
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:25.