我正在尝试使用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解析器可以让我完成这种解析吗?
发布于 2013-01-18 19:47:39
您可以使用正则表达式。此代码将返回示例中的房间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。
https://stackoverflow.com/questions/14406010
复制相似问题