web-dev-qa-db-fra.com

Appeler une fonction php depuis la ligne de commande

J'ai un fichier appelé address.php avec quelques fonctions. Je veux appeler une fonction spécifique dans ce fichier à partir de la ligne de commande, comment? Le nom de la fonction s'appelle exportAddress et cette fonction attend un seul paramètre. 

25
Jack Smit

Ajoutez ceci en haut du fichier "/var/www/test/address.php" ...

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

puis, à partir de la ligne de commande, exécutez #> php /var/www/test/address.php exportAddress 12345

3
Simon Rodan

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

"/var/www/test/arr.php" est le nom du fichier, y compris le chemin, et exportAddress() est utilisé dans ce fichier

2
user7282

vous pouvez créer votre fichier "somefile.php" comme suit:

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

Ensuite, en ligne de commande ou Linux cronjob, vous exécutez la commande suivante

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