2013-01-18 115 views
0

我試圖通過使用QueryPath來傳遞HTML。我想在HTML中獲得一個Javascript變量的值。就像這樣:PHP/Querypath獲取Javascript變量的值

<script type="text/javascript"> 

     var base_url = "http://www.exampleurl.com/"; 
     var room_id = "357"; //I want to get the value of room_id 
     var selected_room_button = ""; 

</script> 

我想JavaScript變量* * ROOM_ID是 的價值如何才能做到這一點?

即使不使用QueryPath,有沒有其他的HTML解析器可以讓我做這種解析?

回答

3

您可以使用正則表達式。此代碼將在您的示例中返回房間ID。

<?php 

$html = ' 
<script type="text/javascript"> 
    var base_url = "http://www.exampleurl.com/"; 
    var room_id = "357"; //I want to get the value of room_id 
    var selected_room_button = ""; 
</script>'; 

$pattern = '/var room_id = "(.*)";/'; 
preg_match($pattern, $html, $matches); 
$room_id = $matches[1]; 

但是沒有通用的解決方案,因爲變量可能已經定義了兩次,或者已經在不同的作用域中定義了。

如果你不需要提取row_id旁邊的其他內容,我會看不到使用HTML解析器的理由。它只會減慢速度。另外請期待HTML解析器不是JavaScript解析器! HTML解析器僅用於提取<script></script>標記之間未解析的內容 - 作爲字符串。您需要再次使用正則表達式來提取row_id。

+0

感謝隊友。我認爲這應該工作。如果沒有其他更多的HTML解析器本地方法出現,這是我接受的答案肯定。 –

+0

好的! :) .. – hek2mgl