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)
官方的手册地址:https://www.php.net/manual/zh/book.v8js.php
延伸
那么除了v8js外还有其他方式让php直接运行js代码吗?还有两种办法
1、通过exec来直接调用nodejs执行js代码,并将结果反馈给php
2、通过rpc远程调用可运行js代码的接口
3、通过,php-phantomjs直接生成一个模拟浏览器进程运行js获取结果
网友评论0