2015-05-08 3 views
1

У меня есть скрипт на языке Perl, который выполняет PHP-скрипт:Выполнение PHP скрипт в Perl с GET переменных в URL

my $phpOutput = `/usr/bin/php /bart/bart.php`; 

это работает прекрасно. теперь я хочу добавить некоторые переменные в url.

my $phpOutput = `/usr/bin/php /bart/bart.php?data=1`; 

это не удается.

Could not open input file: /bart/bart.php?data=1 

любые идеи почему?

+1

Я не думаю, что это действительно URL в этом контексте. –

+0

Похоже, что он просто выполняет его в оболочке. Не использовать http://php.net/manual/en/reserved.variables.argv.php? – chris85

+0

удалить вопросительный знак и добавить '/' снова и попробовать? –

ответ

5

Синтаксис ?x=y предназначен для веб-серверов, тогда как CLI ожидает аргументы, разделенные пробелом после имени файла. Как вы его написали, PHP считает, что ?data=1 является частью имени файла.

Вы могли бы сделать

my $phpOutput = `/usr/bin/php /bart/bart.php 1`; 

и использовать массив, чтобы получить аргумент 1 внутри PHP скрипта. Поскольку это первый аргумент, это будет $argv[1] (0-й индекс - это имя скрипта).

+0

ОК, спасибо. Теперь, что, если это «1» является переменной .... my $ phpOutput = '/ usr/bin/php /bart/bart.php $ someVar'; будет ли это работать? – bart2puck

+0

Конечно, я не вижу причин, по которым это не должно быть. –

Смежные вопросы