基本上我的问题是如何在js文件中获取变量的值。
E.g
var now = (new Date() - 0);
other_var = 'Whats up';//how to pull the value of the other_var which is 'Whats Up'
key.embed();
如何使用php获取other_var
的值?我只需要变量的值'whats up'。
自己做了一些挖掘,现在我能够在php中使用file_get_content
函数获取js文件的内容,只是不知道如何获取变量并拉取其值。
答案 0 :(得分:1)
只需查看“other_var =”,然后查看其后的内容......使用
获取文件$content = file_get_contents(...);
答案 1 :(得分:1)
<?php
$file = file_get_contents('myfile.js');
$varNameToFind = 'other_var';
$expr = '/^\s*(?:var)?\s*'.$varNameToFind.'\s*=\s*([\'"])(.*?)\1\s*;?/m';
if (preg_match($expr, $file, $matches)) {
echo "I found it: $matches[2]";
} else {
echo "I couldn't find it";
}
那样的东西?请注意,它只会在查找引号时找到字符串值,并且在其中有各种漏洞,允许它匹配语法无效Javascript的一些内容,并且当字符串中存在转义引号时它将会失效 - 但是只要JS有效,就应该找到文件中的第一个位置,其中字符串值分配给命名变量,有或没有var
关键字。
修改强>
A much better version只匹配语法上有效的Javascript字符串,并且应匹配任何有效的单个字符串,包括带有转义引号的字符串,尽管它仍然不会处理串联表达式。它还获取字符串的实际值,就像加载到Javascript时一样 - 即它按照定义here插入转义序列。
答案 2 :(得分:1)
如果我假设文件内容与您所描述的一样:
var now = (new Date() - 0);
other_var = 'Whats up';//how to pull the value of the other_var which is 'Whats Up'
key.embed();
然后我建议您使用以下内容:
$data = file_get_contents("javascriptfile.js"); //read the file
//create array separate by new line
//this is the part where you need to know how to navigate the file contents
//if your lucky enough, it may be structured statement-by-statement on each
$contents = explode("\n", $data);
$interestvar = "other_var";
$interestvalue = "";
foreach ($contents as $linevalue)
{
//what we are looking for is :: other_var = 'Whats up';
//so if "other_var" can be found in a line, then get its value from right side of the "=" sign
//mind you it could be in any of the formats 'other_var=xxxxxx', 'other_var= xxxxxx', 'other_var =xxxxxx', 'other_var = xxxxxx',
if(strpos($linevalue,$interestvar." =")!==false){
//cut from '=' to ';'
//print strpos($linevalue,";");
$start = strpos($linevalue,"=");
$end = strpos($linevalue,";");
//print "start ".$start ." end: ".$end;
$interestvalue = substr($linevalue,$start,$end-$start);
//print $interestvalue;
break;
}
}
if($interestvalue!=="")
print "found: ".$interestvar. " of value : ".$interestvalue;