php运行javascript代码

php运行javascript代码,php,javascript,Php,Javascript,可以运行一些javascript表达式吗?例如echo eval(“Math.sqrt('25')”)试试这个 echo "<script language='javascript'> Math.sqrt('25') </script>" echo“Math.sqrt('25')” 由于PHP是一种在服务器上运行的服务器端脚本语言,Javascript是一种在浏览器中运行的客户端脚本语言,因此必须让PHP生成Javascript代码(与生成HTML的方式相同),并在加载

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

试试这个

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

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

在正常情况下:

  • PHP在服务器上运行
  • 然后,Javascript在客户机上的浏览器中运行
因此,不可能让PHP在服务器上执行一些Javascript代码


但是至少在PHP扩展上嵌入(或环绕)Javascript引擎,因此允许从PHP在服务器上执行Javascript

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

当然,和其他任何PHP扩展一样,您需要成为服务器的管理员才能安装它——默认情况下不会安装这个扩展,因为它满足了非常特殊的需要


关于这个扩展,我从未见过在实际情况中使用它,也没有多少人尝试过它。。。以下是两篇您可能想阅读的文章:

  • (这是法语的,在我自己的博客上)
回波sqrt(25)

见:

还有


我不知道它是否仍然被维护,但您可以随时使用fork,它是在GPL许可证下发布的。

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

html/php部分

<div id="mybox" style="visibility:hidden;"> echo sqrt(25); </div>
var myfield = document.getElementById("mybox");
myfield.visibility = 'visible';
现在,你可以用myfield做任何事情。。。像这样

alert(myfield);

从PHP运行JavaScript代码

php v8js:


如果在服务器上安装了node,则可以使用php执行此命令

node a.js

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

PHP在服务器上运行,JS在客户端运行。因此,不,PHP不能运行JS。@nico JS不依赖于平台,因此可以在任何地方运行。node.js是一个使用js编写脚本的web服务器。AppJet&jGate是其他的例子。@kim3er:当然可以,但是如果你在回显JS,它将在客户端而不是服务器上运行。此外,我们没有任何迹象表明他有权访问服务器。@nico我想问题在于问题的模糊性。草崎,你的意图是什么?在呈现页面后触发客户端脚本?或者,在服务器上运行JS?我敢肯定,您可能已经测试并发现这一切正常。除非将值发回服务器端,否则不能在php中使用该值,但可以回显将由客户端运行的emca脚本。如果您具有管理员权限,则可以使用v8。
use Chenos\ExecJs\Context;

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