2011-08-12 30 views
6

我想解析一些与Xpath的HTML,但我发现我想要得到的链接是由一些JavaScript生成的,而不是只使用普通的锚。的JavaScript如下:刮到JavaScript的Javascript变量到PHP

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

现在,我使用的XPath通过抢脚本代码:

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

将返回:

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

我的问题是。如何将这些数据像parse_url或类似的那样获取到数组中?我应该preg_match_all存储字符串的变量吗?如果是这样,我会用什么正则表达式?还是有更好的方法来解析和获取我想要的数据?

在此先感谢!

回答

3

你可以尝试:

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

我认为,那么你的变量将是$阵列[1]和$阵列[2]。

+0

工作就像一个魅力。非常感谢。我真的需要用正则表达式来改善。我总是需要帮助 – tr3online

2

您可以使用此

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

$matches[1]将包含变量名称和$matches[3]将包含它们的值。