php采集网站时,获取Javascript里某个变量的值

转自: http://www.baiyuxiong.com/?p=423
下面的代码可以在采集其它网站的数据时,取得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

你可能感兴趣的:(JavaScript,PHP)