wake-up-neo.com

Rufen Sie eine PHP-Funktion von der Befehlszeile aus auf

Ich habe eine Datei namens address.php mit ein paar Funktionen. Ich möchte eine bestimmte Funktion in dieser Datei von der Befehlszeile aus aufrufen. Wie? Der Name der Funktion heißt exportAddress und diese Funktion erwartet einen einzelnen Parameter 

25
Jack Smit

Mit dem Parameter -r können Sie ein Skript inline ausführen.

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

Es gibt keine anderen Optionen. Eine Funktion in PHP kann nur von einem PHP Skript aufgerufen werden.

65
Tim S.

Fügen Sie dies am Anfang der Datei "/var/www/test/address.php" hinzu ...

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

führen Sie dann in der Befehlszeile #> php /var/www/test/address.php exportAddress 12345 aus

3
Simon Rodan

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

dabei steht "/var/www/test/arr.php" für den Dateinamen einschließlich Pfad und exportAddress() für die Funktion in dieser Datei

2
user7282

sie können Ihre Datei "somefile.php" folgendermaßen organisieren:

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

Dann führen Sie über die Befehlszeile oder den Linux-Cronjob den folgenden Befehl aus

php /path/to/somefile.php arg1 arg2 arg3 ...
1
Samer Ata