Call a php function from the command line

2019-02-05 17:17发布

问题:

I have a file called address.php with a few functions in it. I want to call a specific function in that file from the command line, how? The name of the function is called exportAddress and that function expects a single parameter

回答1:

By using the -r parameter you can run a script in-line.

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

There are no other options. A function in PHP can only be called by a PHP script.



回答2:

Add this to the top of the file "/var/www/test/address.php"...

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

then from the command line execute#> php /var/www/test/address.php exportAddress 12345



回答3:

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

where "/var/www/test/arr.php" is file name including path and exportAddress() is function inside that file



回答4:

you can make your file "somefile.php" organized as follows:

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

Then from command line or Linux cronjob, you run the following command

php /path/to/somefile.php arg1 arg2 arg3 ...