Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析JavaScript变量声明_Javascript_Php - Fatal编程技术网

解析JavaScript变量声明

解析JavaScript变量声明,javascript,php,Javascript,Php,这里有什么方法可以解析PHP中的JavaScript语法吗 我想得到PHP数组中的所有JS变量 $string = 'var variable = "hello"; var thisIsVariableToo = "world"; var and = ["this", "is"]; var its = new Array("amazing"); var nice = null;'; 我想从(^^^)字符串获

这里有什么方法可以解析PHP中的JavaScript语法吗

我想得到PHP数组中的所有JS变量

$string = 'var variable = "hello";
           var thisIsVariableToo = "world";
           var and = ["this", "is"];
           var its = new Array("amazing");
           var nice = null;';
我想从(^^^)字符串获取PHP:

我该怎么做呢?

这个怎么样

$str = 'var variable = "hello";
var thisIsVariableToo = "world";
var and = ["this", "is"];
var its = new Array("amazing");
var nice = null;';

preg_match_all('~^var\s+([^=]+?)\s*=\s*(.+?)\s*;?\s*$~imu', $str, $matchesAll, PREG_SET_ORDER);
$arr = array();
foreach ($matchesAll as $matches) {
    $arr[$matches[1]] = $matches[2];
}

print_r($arr);
哪个输出:

Array
(
    [variable] => "hello"
    [thisIsVariableToo] => "world"
    [and] => ["this", "is"]
    [its] => new Array("amazing")
    [nice] => null
)

您必须使用将数据传递给PHP。@BrianRay:我想您误解了这个问题。这里似乎根本不涉及HTTP层。OP有一个包含JavaScript代码的字符串,并希望将该字符串的语法解析为一个结构。您的目标是什么?javascript是客户端,php是服务器端:没有交互。你想从html代码中提取javascript变量吗?@fusion3k我的目标是:从javascript字符串中获取所有js变量并将其解析为phparray@SzymonMarczak:您到底为什么要将JavaScript语言发送到要分析的服务器?你打算在这里做什么?这真是太好了!非常感谢。请记住,
var
不能用于设置变量。。。无论如何,干得好!我犯了一个错误。它工作得很好!谢谢
Array
(
    [variable] => "hello"
    [thisIsVariableToo] => "world"
    [and] => ["this", "is"]
    [its] => new Array("amazing")
    [nice] => null
)