[英]How could one use Node.js to run JS from PHP and return a value back?
这不是认真的事情,更重要的是可以尝试一下。 只是不确定我从哪里开始。 同样也没有绑定到Node.js,只是发现它是最流行的服务器端JS工具。
尽管如果有一些主要的技术原因,为什么不应该在实际站点上执行此类操作,请随意将它们扔在那里。
我要问的是……
$input = $js_string_built_via_php;
if ($run_on_server)
$output = node.js($input);
else
$output = '<script type="text/javascript">'.$input.'</script>';
echo $output;
这里有使用节点的几种选择。
您是否看到V8js PHP扩展 ,该扩展将V8引擎与PHP集成在一起? 我自己没有使用它的经验。
另外,类似于使用节点,您可以安装Rhino (至少在12.04版本起可以在Ubuntu仓库中使用)。 或另一个命令行javascript解释器。 然后,您可以从外壳执行javascript:
rhino -e '<javascript code>';
因此,您应该能够执行以下操作。 您将必须使用print来输出数据,然后以某种方式将输出解析回php:
<?php
function execute_js($script) {
return shell_exec('rhino -e '.escapeshellarg($script));
}
$javascript = "
function add(a,b) {
return a+b;
}
print(add(5,6));
";
$result = execute_js($javascript);
print $result;
我怀疑这在生产应用程序中是个好主意,并且看起来可能会非常脆弱,而且攻击面更大。 客户端能够注入实际上在服务器上执行的javascript代码。 加载时也可能非常慢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.