2011-08-12 12 views
6

Estoy tratando de analizar algo de HTML con Xpath, pero estoy descubriendo que los enlaces que quiero obtener están generados por algunos javascript y no usan solo un ancla normal. El javascript es el siguiente:Raspado de variables de Javascript en PHP

<script type="text/javascript"> 
    var Hyperurl="ab5"; 
    var Hyperlink="46439157"; 
</script> 

Ahora, he usado XPath para agarrar el código de secuencia de comandos a través de:

$xpath->query('//script[contains(.,"Hyper")]'); 

que devuelve:

var Hyperurl="ab5";var Hyperlink="46439157"; 

Mi pregunta es. ¿Cómo puedo obtener esta información en una matriz muy parecida a parse_url o similar? ¿Debo simplemente preg_match_all la variable que almacena la cadena? Si es así, ¿qué expresiones regulares usaría? ¿O hay una mejor manera de analizar y tomar los datos que quiero?

¡Gracias de antemano!

Respuesta

3

Usted podría intentar:

preg_match_all('/"(.*?)"/', $variables, $array); 

creo que las variables serían entonces $ array [1] y $ array [2].

+0

Funcionó como un encanto. Muchas gracias. Realmente necesito mejorar con Regex. Siempre necesito ayuda con eso – tr3online

2

podría utilizar este

preg_match_all('/var\s+(\w+)\s*=\s*(["\']?)(.*?)\2;/i', $js, $matches); 

$matches[1] contendrá los nombres de las variables, y $matches[3] contendrá sus valores.