我试图运行一个简单的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。
我可怕的英语。
非常感谢!
答案 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];
您可以使用存储变量的值。