2011-08-12 59 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]將包含它們的值。