【问题标题】:Parse JavaScript variable declarations [closed]解析 JavaScript 变量声明 [关闭]
【发布时间】:2016-02-12 19:29:22
【问题描述】:

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

我想获取 PHP 数组中的所有 JS 变量

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

我想从那个 (^^^) 字符串中获取 PHP:

$string = [
    "variable" => "hello",
    "thisIsVariableToo" => "world",
    "and" => ["this", "is"],
    "its" => ["amazing"],
    "nice" => null
]

我该怎么做?

【问题讨论】:

  • 您必须使用 AJAX 将数据传递给 PHP。
  • @BrianRay:我认为你误解了这个问题。这里似乎根本不涉及 HTTP 层。 OP 有一个包含 JavaScript 代码的字符串,并希望将该字符串的语法解析为一个结构。
  • 你的目标是什么? javascript是客户端,php服务器端:没有交互。您想从 html 代码中提取 javascript 变量吗?
  • @fusion3k 我的目标:从 javascript 字符串中获取所有 js 变量并将其解析为 php 数组
  • @SzymonMarczak:您究竟为什么要将 JavaScript language 发送到服务器进行解析?你打算在这里完成什么?

标签: javascript php


【解决方案1】:

这个怎么样?

$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
)

【讨论】:

  • 这真是太好了!谢谢你!请记住,var 不能用于设置变量...无论如何,干得好!
  • 我做错了。它工作得很好!谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多