可以运行一些javascript表达式吗?例如echo eval("Math.sqrt('25')");
答案 0 :(得分:7)
在正常情况下:
所以,不,不太可能让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)
答案 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作为输出。