2011-10-18 12 views
7

la mia domanda è probabilmente facile rispondere. voglio eseguire il mio file php con i parametri di shell e passa ad esso attraverso la shell esempiopassare parametri a php con shell

php test.php parameter1 parameter2 

c'è un modo per farlo, tranne utilizzando GET?

grazie

risposta

7

Sì, è possibile farlo in questo modo ma è necessario fare riferimento agli argomenti dell'array $_SERVER['argv']. $_SERVER['argc'] ti dirà quanti args sono stati ricevuti, se vuoi usarlo come primo livello di validazione per assicurarti che sia stato inserito un numero richiesto di argomenti.

per illustrare questo, eseguendo il seguente script come args.php arg1 arg2 arg3: uscita

#!/usr/bin/php 
<?php 
var_dump($argv); 
?> 

volontà:

array(4) { 
    [0]=> 
    string(8) "args.php" 
    [1]=> 
    string(4) "arg1" 
    [2]=> 
    string(4) "arg2" 
    [3]=> 
    string(4) "arg3" 
} 

Ecco un esempio pratico:

In questo esempio, creeremo uno script (days.php) che emette il numero di giorni da una determinata data. Accetterà 3 parametri, il mese, il giorno e l'anno come numeri.

#!/usr/bin/php 
<?php 
if($argc < 4 || !is_numeric($argv[1]) || !is_numeric($argv[2]) || !is_numeric($argv[3])) 
{ 
    echo "Usage: $argv[0] mm dd yyyy\n"; 
} 
else 
{ 
    $pastdate = mktime(0, 0, 0, $argv[1], $argv[2], $argv[3]); 
    $diff = time() - $pastdate; 
    $days = round($diff/60/60/24); 
    echo "$days days since $argv[1]/$argv[2]/$argv[3]\n"; 
} 
?> 

Shell chiamata:

`$ ./days 11 17 1988` OR `php days.php 11 17 1988` 

uscita:

7699 days since 11/17/1988 

Spero che questo aiuti.

+1

Il link tutorial "Accesso a throuh SHELL" reindirizza a un sito di spam! – Avi

4

È possibile utilizzare $argv per ottenere i parametri.

+0

Sì, è così che accendo i processi di php – Atticus

+0

l'URL di '$ argv' è rotto, puoi aggiustarlo? –

+1

@PratikJaiswal Grazie per l'avviso, risolto. – xdazz

Problemi correlati