php运行javascript代码

时间:2011-02-25 19:40:29

标签: php javascript

可以运行一些javascript表达式吗?例如echo eval("Math.sqrt('25')");

8 个答案:

答案 0 :(得分:7)

在正常情况下:

  • PHP在服务器上运行
  • 然后,Javascript在客户端上,在浏览器中运行。

所以,不,不太可能让PHP在服务器上执行一些Javascript代码。


至少在PHP扩展上嵌入了(或wrap arround)一个Javascript引擎,因此,允许一个人在服务器上执行Javascript,从PHP

我正在考虑的扩展名是spidermonkey:在服务器上安装和启用它将允许您在服务器上从PHP执行Javascript代码。

当然,像任何其他PHP扩展一样,您需要成为服务器的管理员,以便安装它 - 并且默认情况下永远不会安装此服务器,因为它满足了非常具体的需求。


关于这个扩展,我从来没有看到它在实际情况下使用,并没有很多人尝试过它...这里有两篇你可能想读的文章:

答案 1 :(得分:5)

试试这个

echo "<script language='javascript'> Math.sqrt('25') </script>"

答案 2 :(得分:3)

还有J4P5

我不知道它是否仍然保留,但您可以随时分叉,它是根据GPL许可证发布的。

答案 3 :(得分:3)

将你的php放入隐藏的div中,然后用javascript调用它

html / php part

<div id="mybox" style="visibility:hidden;"> echo sqrt(25); </div>

javascript部分

var myfield = document.getElementById("mybox");
myfield.visibility = 'visible';

现在,你可以对myfield做任何事......就像这样

alert(myfield);

答案 4 :(得分:1)

由于PHP是在服务器上运行的服务器端脚本语言,而Javascript是在浏览器中运行的客户端脚本语言,因此您必须让PHP生成Javascript代码(与生成HTML的方式相同)加载页面后执行。

答案 5 :(得分:1)

echo sqrt(25);

请参阅:

http://php.net/manual/en/function.sqrt.php

答案 6 :(得分:0)

从PHP运行JavaScript代码

php v8js:https://github.com/phpv8/v8js

$v8 = new V8Js;
$v8->executeString("Math.sqrt('25')"); // 5

https://github.com/chenos/execjs

use Chenos\ExecJs\Context;

$cxt = new Context;
$cxt->eval("Math.sqrt('25')"); // 5

答案 7 :(得分:0)

如果您的服务器上安装了节点,那么您可以使用php

执行此命令
node a.js

然后使用console.log作为输出。