(PHP 4, PHP 5)
popen — Apre un puntatore ad un file di processo
$command
, string $mode
)Apre una pipe ad un processo eseguito forzando il comando dato da command.
Restituisce un puntatore a file identico a quello restituito da fopen(), eccetto che per il fatto che è unidirezionale (può solo essere usato per la lettura o la scrittura) e deve essere chiudo con pclose(). Questo puntatore può essere usato con fgets(), fgetss() e fwrite().
Se si verifica un errore, restituisce FALSE
.
Nota:
Se si sta cercando un supporto bi-direzionale (2 vie), utilizzare proc_open().
Example #1 Esempio di uso di popen()
<?php
$handle = popen("/bin/ls", "r");
?>
Se il comando che deve essere eseguito non è trovato, la funzione restituisce una risorsa valida. Questo sembra strano, ma ha un senso; esso permette di accedere ai messaggi di erore restituiti dalla shell:
<?php
error_reporting(E_ALL);
/* Aggiunge una redirezione, così possiamo ottenere stderr. */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>
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 pclose(), fopen() e proc_open().