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


 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Problema / Duda] RegEXP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Problema / Duda] RegEXP  (Leído 890 veces)
venadHD

Desconectado Desconectado

Mensajes: 94

Donde hay hackers, tambien hay crackers.


Ver Perfil WWW
[Problema / Duda] RegEXP
« en: 11 Abril 2015, 16:03 »

Hola de nuevo xD , la duda que me entró ahora y que me decidi a poner aqui (porque entiendo de p*** madre las cosas aqui) es sobre los RegExp en codigos fuente de paginas web, voy a exponer lo que trato de hacer:

Me fui a una pagina web, en concreto ( http://www.game-state.com/5.175.139.216:22050 ) y quise capturar algunos datos que figuran ahi a un script en PHP.

Lo que yo queria integrar, era esto:
<td class="value" id="players">1/128</td>

Lo intenté con el siguiente metodo, pero no funcionó, pienso que me falta algo:

Código
  1. $contenido = file_get_contents("http://www.game-state.com/5.175.139.216:22050");
  2. $regexp = '<td class="value" id="players">?(.+)(?:<\/td>)?';
  3. preg_match_all($regexp,$contenido,$matches);
  4. print_r($matches[1]);
  5. echo'ZONA TEST';

Esto puede ser algo mejor? Pero me sigue apareciente en blanco, es decir, nada.
Código
  1. $regexp = '/(?:<td class=\"value\" id=\"players\">)<td class="value" id="players">(.+)(?:\ <\/td>/)';

Resultado: Array ( )


« Última modificación: 11 Abril 2015, 16:27 por venadHD » En línea

T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: [Problema / Duda] RegEXP
« Respuesta #1 en: 11 Abril 2015, 16:39 »

Prueba esto para ver el array entero:
Código
  1. print_r($matches);

Así lo he hecho sin regexp:

Código
  1. $contenido = file_get_contents("http://www.game-state.com/5.175.139.216:22050");
  2.  
  3. $str = '<td class="value" id="players">';
  4. $start = strpos( $contenido, $str ) + strlen($str);
  5. $end = strpos( $contenido, "</td>", $start );
  6. $result = substr( $contenido, $start, $end-$start);
  7. echo $result;


En línea

MinusFour
Colaborador
***
Conectado Conectado

Mensajes: 4.936


I'm fourth.


Ver Perfil WWW
Re: [Problema / Duda] RegEXP
« Respuesta #2 en: 11 Abril 2015, 16:51 »

Yo creo que seria mas facil si usaras el DOMDocument. De esta forma los contenedores pueden cambiar, las clases tambien pueden cambiar. Lo unico que no puede cambiar es la Id.
Código
  1. $contenido = file_get_contents("http://www.game-state.com/5.175.139.216:22050");
  2. $domDoc = new DOMDocument();
  3. @$domDoc->loadHTML($contenido);
  4. $elementId = $domDoc->getElementById('players');
  5. $text = $elementId->nodeValue; // 2/128

Claro que tiene sus desventajas. Es mucho mas lento que un simple strpos. Y posiblemente mas lento que regex. Pero es mucho mas manejable.
En línea

venadHD

Desconectado Desconectado

Mensajes: 94

Donde hay hackers, tambien hay crackers.


Ver Perfil WWW
Re: [Problema / Duda] RegEXP
« Respuesta #3 en: 11 Abril 2015, 16:55 »

Joder y yo que me estaba matando para lograr el array correcto.

Código
  1. $contenido = file_get_contents("http://www.game-state.com/5.175.139.216:22050");
  2. $regexp = '/(.+)/';
  3. preg_match_all($regexp,$contenido,$matches);
  4. print_r($matches[1][142]);

Intentare aprenderme eso de strpos y substr, recien aprendo PHP desde ayer
Gracias por la ayuda
EDIT: Creo que lo entendí bien;
Código
  1. $str = '<td class="value" id="players">'; //string a buscar inicialmente
  2. echo"$str <br>";
  3. $start = strpos( $contenido, $str ) + strlen($str); //encontrarla en formato numerico
  4. echo"$start <br>";
  5. $end = strpos( $contenido, "</td>", $start ); //encontrar donde quiero que acabe a partir de $start en formato numerico
  6. echo"$end <br>";
  7. $result = substr( $contenido, $start, $end-$start); //extraer texto a partir de una posicion inicial numerica proporcionada por $start y el numero de caracteres definido por la resta de $end - $start = 5
« Última modificación: 11 Abril 2015, 17:01 por venadHD » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
<Python> Regexp? Dudas con peticiones web
Scripting
xassiz_ 2 2,251 Último mensaje 13 Abril 2010, 01:16
por Shell Root
Denial of Service in RegExp
Bugs y Exploits
SH4V 2 2,225 Último mensaje 13 Mayo 2010, 15:57
por SH4V
RegExp Numero de string [Python]
Scripting
Ricardo95 1 2,515 Último mensaje 15 Abril 2011, 00:46
por Novlucker
[SRC] Elemental Nod32 Keyfinder [Mi primera RegExp]
Programación Visual Basic
Elemental Code 4 2,187 Último mensaje 14 Octubre 2011, 04:38
por CAR3S?
Problema con regexp (Parseando HTML)
Programación General
Debci 6 1,300 Último mensaje 7 Marzo 2013, 01:29
por 1mpuls0
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines