2016-11-29 3 views
2

Я звоню PHP скрипт из командной строки:Как передать переменные оболочки в вызов функции PHP как аргументы?

/usr/bin/php -r "require '/path/to/php/dummy.php'; echo getFunction(\"DummyParameter\")"; 

вызова работает как шарм, и функция PHP возвращает правильное значение. Я хочу заменить DummyParameter на $ShellVariable. Когда я заменяю DummyParameter, он должен быть передан как строка "$ShellVariable". Вот что я пробовал:

/usr/bin/php -r "require '/path/to/php/dummy.php'; echo getFunction(\"$ShellVariable\")"; 

Есть ли способ передать переменную оболочки в PHP-скрипт в качестве аргумента функции?

Заранее спасибо.

+0

Вы, вероятно, но получить правильное экранирование, возможно, будет очень трудно получить права и потребует довольно грязный код. Является ли это доказательством концепции? Потому что это тривиально, если вы просто пишете код в файле. –

ответ

1

Передайте аргументы CLI и использовать $argv массив, например:

php -r 'printf("%s\n", $argv[1]);' "$(date)" 

Пример вывода

Tue Nov 29 14:09:07 +07 2016 
Смежные вопросы