Descrizione
void
passthru ( string 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.
Avvertimento |
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 vuole avviare un programma tramite questa funzione
e lasciarlo girare in background, occorre essere certi che l output
del programma sia rediretto su un file o qualche altro flusso di output
altrimenti il PHP sarà sospenderà fino a quando il programma non termina.
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.
Avvertimento |
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.