Выполнение PHP-скрипта на Perl с переменными GET в URL

1

У меня есть скрипт perl, который выполняет скрипт php:

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
    Похоже, он просто выполняет его в оболочке. Не можете использовать php.net/manual/en/reserved.variables.argv.php ?
Показать ещё 3 комментария
Теги:

1 ответ

5
Лучший ответ

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

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

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

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

  • 0
    хорошо спасибо. А что если эта «1» является переменной .... my $ phpOutput = /usr/bin/php /bart/bart.php $someVar ; будет ли это работать?
  • 0
    Конечно, я не вижу причин, по которым это не должно быть.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню