2016-10-13 81 views
-2

在一個php程序中,我在$ page變量中有一個網頁。從網頁獲取JavaScript var值

... 
$page = file_get_contents("http://www.autostrade.it/autostrade-gis/gis.do", false, $context); 

$dom = new DOMDocument; 
$dom->loadHTML($); 
$xpath = new DOMXPath($dom); 
... 

在這個頁面中有一些JavaScript和我想利用包含在所謂的「evtsVar」變量的JSON數據。

... 
<script ...> 
    ... 
</script> 
<script ...> 
    ... 
    var evtsVar = {json data} 
    ... 
</script> 

使用Xpath查詢是正確的方法嗎?我該如何做這個變量值?

謝謝大家,對不起我的英文。

+0

你是否試圖從JavaScript訪問jsondata到php腳本? – black

+0

不可以。我如何訪問ti json數據? –

+0

是的,你想玩JSON數據..如果你想在PHP端玩它,你需要Ajax,如果你想在客戶端訪問它,你可以做到這一點沒有任何問題。 – black

回答

0

這是關於某個頁面的一個非常具體的問題。我已經分析了您提供鏈接的頁面。腳本標記中有一個變量。你想用JSON來獲取。

我已經使用jquery的解決方案,強烈建議你。

首先獲取頁:

<? 

$page = file_get_contents("http://www.autostrade.it/autostrade-gis/gis.do", false, $context); 

?> 

然後在JavaScript變量獲取頁:

var page = <?php echo json_encode($page) ?>; 

現在我們的頁面,我們應該找到以字符串 「VAR evtsVar =」 ,結尾 「;」:

var preString = "var evtsVar = "; 
var postString = ";"; 
var preIndex = page.indexOf(preString); 
var searchIndex = preIndex + page.substring(preIndex).indexOf(postString); 

var evtsString = page.slice(preIndex + preString.length , searchIndex); 

現在得到的字符串解析成JSON對象,並打印:

var evtsVar = JSON.parse(evtsString); 

console.log(evtsVar); 

經過測試,作品。

+0

這是一樣的事情,如果我在PHP中使用字符串搜索功能搜索變量$頁面? –

+0

indexOf就像一個搜索功能。這是一個問題嗎?您是否在平臺上測試了以上代碼? – Kartal

+0

的確,我在'strpos'php函數中搜索變量$頁面中的字符串「var = evtsVar」。 它看起來相當於你的方法。你的代碼有效。 我想知道是否有一種方法,如用於使用xpath查詢製作HTML元素的方法。 –