(PHP 4, PHP 5)
passthru — Esegue un programma esterno e mostra l'output non elaborato
$command
[, int &$return_var
] )
La funzione passthru() è simile alla funzione
exec() inquanto esegue
command
. Se il parametro
return_var
è specificato, lo stato ritornato dal comando
Unix verrà posto lì. Questa funzione deve essere usata al posto di exec()
o di system() quando l'output del comando Unix consiste
in dati binari da passare direttamente al browser.
Un suo uso frequente consiste nel eseguire, ad esempio, le utility
pbmplus che possono restituire un flusso diretto all'immagine.
Impostado il tipo di contenuto a image/gif e successivamente
chiamando un programma pbmplus per generare una gif puoi realizzare uno script
PHP che genera direttamente immagini.
Se si permette di passare a questa funzione i dati provenineti dagli input utente, si dovrebbe utilizzare la funzione escapeshellarg() oppure escapeshellcmd() in modo da essere sicuri che gli utenti non possano compromettere il sistema eseguendo comandi arbitrari.
Nota:
Se si avvia un programma con questa funzione e si vuole lasciarlo in esecuzione in background, ci si deve accertare che l'output del programma venga redirezionato verso un file o qualche altro stream di output, altrimenti PHP si fermerà finché l'esecuzione del programma sarà terminata.
Nota: Quando si abilita la modalità sicura, si può eseguire soltanto gli eseguibili presenti nella directory safe_mode_exec_dir. Per motivi pratici, attualmente, non è permesso avere .. come componente del percorso di un eseguibile.
Con la modalità sicura attivata, tutte le parole che seguono il comando iniziale sono trattate come argomenti. Quindi, echo y | echo x diventa echo "y | echo x".
Vedere anche exec(), system(), popen(), escapeshellcmd(), e l'operatore backtick.