php运行js文件

    /**
     * 运行js 仅在node环境下
     * 参数 jsFile  js文件名
     * 参数 v       要传递的参数
     * 参数 path    js目录
     * by:LingMax
     */
    function js_node($jsFile,$v,$path = './JsDecrypt/')
    {
        $cmd = 'node "' . realpath($path.'node_api.js');
        $cmd .= '" "' . realpath($path.$jsFile).'" "'.$v.'"';
        //echo $cmd.'<br>';
        return exec($cmd);

    }
    /**
     * 运行js 仅在win平台下
     * 参数 jsFile  js文件名
     * 参数 exec    要传递的参数
     * 参数 path    js目录
     * by:LingMax
     * 注意:需要打开该扩展插件 extension=php_com_dotnet.dll
     */
    function js_run($jsFile,$v,$path = './JsDecrypt/')
    {
        $oScript = new \COM("MSScriptControl.ScriptControl");#创建com组件
        $oScript->Language = "JavaScript";#设置脚本类型
        $oScript->AllowUI = false;#不显示提示框
        $code = file_get_contents($path.$jsFile);
        
        #编码自动转换
        $bm = 'GB2312';
        $encode=mb_detect_encoding($code,array("ASCII","UTF-8","GB2312","GBK","BIG5"));
        if ($encode != $bm and $encode !="GB2312"){
            $code=mb_convert_encoding($code,$bm,$encode);
        }

        $oScript->AddCode($code);#添加js代码 只支持gbk格式文本
        return $oScript->Run("eval", 'tmd("'.$v.'")');#运行代码
    }

node_api.js 文件内容如下

//console.log(process.argv);
require(process.argv[2]);//C://xx.js 绝对路径
console.log(tmd(process.argv[3]));

qrl_fanzhoutech_com.js 文件内容如下


function tmd(pwd) {
    var a = 'aaa';
    return pwd + a;
}

//兼容node环境
if(typeof(global) != 'undefined'){
    global.tmd = tmd;
}

 

node "C:\EXE\JsDecrypt\node_api.js" "C:\EXE\JsDecrypt\qrl_fanzhoutech_com.js" "222222"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值