Phantomjs не получает аргументы от php exec

Я пытаюсь запустить простую программу phantomjs, передавая некоторые аргументы из php, и единственный аргумент, который может прочитать мой js, это первый (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 some args’), и он работал правильно, поэтому, я думаю, что проблема заключается в php и его отношении с «require (‘system’)» фантомов.

Простите за мой ужасный английский.

Большое спасибо !

1

Решение

То, что вы делаете, это добавление строки в одну переменную.

Попробуйте код ниже

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

Вы можете использовать значения хранимых переменных.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]