php调用v8js扩展直接运行javascript代码

php调用v8js扩展直接运行javascript代码

php调用v8js扩展直接运行javascript代码

以前我们如果要使用php来运行js代码,直接在php文件中输出script来实现php输出js代码,代码如下:

<?php

$JS = <<< EOT
console.log('HelloWorld!' + "\\n");
EOT;

echo "<script>{$JS}</script>";
?>

其实上面这段代码还是没有真正实现php代码直接运行js的效果,我们需要直接在php中运行js代码,不是通过输出网页让浏览器执行js代码,今天我来推荐一个新的php扩展v8引擎,先看看用v8扩展的php如何直接运行js代码,代码如下:

<?php

$v8 = new V8Js();

/* basic.js */
$JS = <<< EOT
len = print('Hello' + ' ' + 'World!' + "\\n");
len;
EOT;

try {
  var_dump($v8->executeString($JS, 'basic.js'));
} catch (V8JsException $e) {
  var_dump($e);
}

?>

上面会输出

Hello World!
int(13)

是不是很酷,那么要让上面的代码直接在你的PHP中运行,需要安装这个v8js的扩展,这个扩展的下载地址:https://pecl.php.net/package/v8js

官方的手册地址:https://www.php.net/manual/zh/book.v8js.php

php调用v8js扩展直接运行javascript代码

延伸

那么除了v8js外还有其他方式让php直接运行js代码吗?

还有两种办法

1、通过exec来直接调用nodejs执行js代码,并将结果反馈给php

2、通过rpc远程调用可运行js代码的接口

3、通过,php-phantomjs直接生成一个模拟浏览器进程运行js获取结果



{{collectdata}}

网友评论0