Phantomjs没有得到php exec的args

时间:2015-01-20 17:03:27

标签: php exec phantomjs param

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

这是代码。

PHP:

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

幻象/ test.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一些args')并且它正常工作,所以,我认为问题在于php及其与" require(' system')"的关系。 of phantomjs。

我可怕的英语。

非常感谢!

1 个答案:

答案 0 :(得分:0)

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

尝试以下代码

$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];

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