我正在尝试使用QueryPath传递HTML。我想在HTML中获取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 *的值 357 我怎样才能做到这一点?
即使不使用QueryPath,是否还有其他HTML解析器可以让我进行这种解析?
答案 0 :(得分:4)
您可以使用正则表达式。此代码将返回示例中的房间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。