2012-12-07 2 views
19

Ho un file chiamato address.php con alcune funzioni al suo interno. Voglio chiamare una funzione specifica in quel file dalla riga di comando, come? Il nome della funzione è chiamato exportAddress e tale funzione si aspetta un singolo parametroChiama una funzione php dalla riga di comando

risposta

41

Utilizzando il parametro -r è possibile eseguire uno script in linea.

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

Non ci sono altre opzioni. Una funzione in PHP può essere chiamata solo da uno script PHP.

+0

php --run "require 'address.php'; exportAddress (12345); "che è facile da ricordare chiamare dalla CLI – Tarik

1

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

dove "/var/www/test/arr.php" è il nome del file incluso il percorso e exportAddress() è la funzione all'interno del file

3

aggiungere questo alla parte superiore del file "/var/www/test/address.php" ...

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

poi dalla riga di comando eseguire #> php /var/www/test/address.php exportAddress 12345

1

è possibile rendere il file "somefile.php" organizzato come segue:

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

Poi da riga di comando o cronjob Linux, si esegue il seguente comando

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