转自:[url]http://www.baiyuxiong.com/?p=423[/url]
下面的代码可以在采集其它网站的数据时,取得JS里某个变量的值。针对下两种JS的写法,利用两个不同的正则先取到JS部分的代码,然后再在代码里取需要的变量。
php代码:
显示结果:
xxx
下面的代码可以在采集其它网站的数据时,取得JS里某个变量的值。针对下两种JS的写法,利用两个不同的正则先取到JS部分的代码,然后再在代码里取需要的变量。
<script>function test(){}</script>
<script type="text/javascript">function test(){}</script>
php代码:
<?php
$str = '<script>function test(){}</script><script type="text/javascript">function aa(){ '.
'var enDtime=xxx;}</script><div><div> <div class="foo bar">ok</div></div></div>';
$patten="'var endtime=(.*?);'is";
echo getVarInjs($str,$patten);
function getVarInjs($str,$patten,$withType = true)
{
$patten_js = $withType?"'<\s*script[^>]*[^/]>(.*?)<\s*/\s*script\s*>'is":"'<\s*script\s*>(.*?)<\s*/\s*script\s*>'is";
preg_match_all($patten_js, $str, $matches);
foreach($matches[1] as $m)
{
//过滤取值
preg_match($patten,$m,$result);
if(!empty($result[1]))
return $result[1];
}
return false;
}
显示结果:
xxx