Phantomjs 不会从 PHP exec 那里获取参数


Phantomjs doesn't get the args from php exec

我正在尝试运行一个简单的phantomjs程序,从php传递一些参数,而我的js可以读取的唯一参数是第一个(args[0])。

这是代码。

.PHP:

...
$resp = exec("phantomjs phantom/test.js hello other args");
...

幻像/测试.js:

var args = require('system').args;
str = 'Args: ';
args.forEach(function (arg, i) {
    str += (i + ': ' + arg);
});
str += ' Length: '+args.length;
str = str.replace(/('r'n|'n|'r)/gm,"");
console.log(str);
phantom.exit();

输出为:

Args: 0: phantom/test.js Length: 1

我正在使用Windows 7。我试图从 windows 命令行(cmd->"phantomjs test.js一些参数")严重运行这段代码并且它工作正常,所以,我认为问题出在 php 及其与 phantomjs 的"require('system')"的关系。

对不起,我的英语很糟糕。

多谢!

您正在做的是将字符串附加到单个变量中。

尝试下面的代码

$resp = exec("phantomjs phantom/test.js arg1 arg2 ..... argN");

现在 phantomjs 代码将是这样的,以捕获从 Php 文件发送的参数

var system = require('system');
var args = system.args;
var argument1 = args[1];
var argument2 = args[2];
.
.
.
var argument3 = args[N];

您可以使用存储变量的值。