AGOW_CMS 1.0
PHP da consolle
L' utilizzo del PHP da consolle risulta molto comodo per varie ragioni e in varie situazioni:
- Si puo' lavorare come altro utente rispetto a www-data o apache
- Non si e' (volendo) soggetti a timeout
- Si puo' lavorare sia a riga di comando che tramite un prompt
E' ovviamente necessario il PHP non come modulo di apache ma come CLI
es.
/usr/local/bin/php /path/to/file.php [arguments]
Quindi direi di iniziare levando il timeout e flushando l' output buffering implicitamente
set_time_limit(0);
@ob_end_flush();
ob_implicit_flush(true);
Se si ha bisogno di un prompt dei comandi suggerirei una classettina semplice, portabile, multipiattaforma.
class prompt {
var $tty;
function prompt() {
if (substr(PHP_OS, 0, 3) == "WIN") {
$this->tty = fopen("\con", "rb");
} else {
if (!($this->tty = fopen("/dev/tty", "r"))) {
$this->tty = fopen("php://stdin", "r");
}
}
}
function get($string, $length = 1024) {
echo $string;
$result = trim(fgets($this->tty, $length));
return $result;
}
}
Utilizzo:
Si istanzia un oggetto di classe prompt
$prompt = new prompt();
Si chiede all' utente qualcosa memorizzando la stringa inserita fino alla pressione del tasto [Invio] in una variabile
$variabile = $prompt->get('inserisci il tuo nome: ');
echo $variabile;
Per far arrivare i parametri desiderati direttamente dallo script di lancio
es. /usr/local/bin/php /path/to/stampa.php Mario
Gli argomenti separati da spazio sono accessibili tramite la variabile $argv[]
Array numerico dove:
$argv[0] = nome stesso del file eseguito
$argv[1] = parametro1
si puo' controllare quindi se sono stati passati parametri semplicemente facendo:
if(count($argv)>1){ /* avemus parametro */ }
:P
Autore: #ffffff (09-02-2007 00:00:00)
07-01-2009 - PM 03:29