Вызвать функцию php из командной строки

22

У меня есть файл address.php с несколькими функциями. Я хочу вызвать определенную функцию в этом файле из командной строки, как? Имя функции называется exportAddress, и эта функция ожидает единственный параметр

    
задан Jack Smit 07.12.2012 в 12:10
источник

4 ответа

46

Используя параметр -r , вы можете запустить скрипт в строке.

php -r "require 'address.php'; exportAddress(12345);"

Других вариантов нет. Функция в PHP может быть вызвана только скриптом PHP.

    
ответ дан Tim S. 07.12.2012 в 12:12
источник
  • php --run "require 'address.php'; exportAddress (12345);" который легко запомнить для вызова из CLI –  Tarik 01.04.2017 в 13:12
3

Добавьте это в начало файла «/var/www/test/address.php» ...

foreach ($argv as $i=>$arg )
{
    if ( $arg == "exportAddress" )
    { 
        exportAddress($argv[$i+1]);
    }
}

, затем из командной строки выполните # & gt; php /var/www/test/address.php exportAddress 12345

    
ответ дан Simon Rodan 04.09.2014 в 07:12
источник
1

php -r 'include "/var/www/test/address.php";exportAddress(1);'

где "/var/www/test/arr.php" - это имя файла, включая путь, и exportAddress() - это функция внутри этого файла

    
ответ дан user7282 07.12.2012 в 12:19
источник
1

вы можете сделать свой файл «somefile.php» организованным следующим образом:

function func1(){....}
function func2(){....}
function func3(){....}
....
foreach ($argv AS $arg){
    function_exists($arg) AND call_user_func($arg);
}

Затем из командной строки или Linux cronjob вы запускаете следующую команду

php /path/to/somefile.php arg1 arg2 arg3 ...
    
ответ дан Samer Ata 18.11.2015 в 10:50
источник