我正在尝试运行一个简单的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(/(rn|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];
您可以使用存储变量的值。