intrappolare stderr in php exec function
Ciao a tutti, avrei la necessità di intrappolare lo standard error
ritornato dall'esecuzione di comandi esterni (external scripts) senza
però modificare il comando stesso. Mi spiego meglio con un esemmpio
<? php
$cmd_stderr = "cmd.err";
$cmd = 'ls foofile';
exec("$cmd 2>$cmd_stderr", $aOut, $errcode);
$stderr = file_get_contents($cmd_stderr);
if ($errcode) {
echo "Errore nell'esecuzione del comando '$cmd':\n$stderr\n";
}
unlink ($cmd_stderr);
?>
riesce ad intrappolare lo standard output ma se lo script utilizza pipe
ho già qualche difficoltà:
<? php
$cmd_stderr = "cmd.err";
$cmd = 'ls foofile | grep .';
exec("$cmd 2>$cmd_stderr", $aOut, $errcode);
$stderr = file_get_contents($cmd_stderr);
if ($errcode) {
echo "Errore nell'esecuzione del comando '$cmd':\n$stderr\n";
}
unlink ($cmd_stderr);
?>
Non c'è modo in php di redirigere temporaneamente lo stderr in una
variabile o un altro modo per intrappolare lo stderr nella esecuzione di
uno script esterno?
Grazie
Piviul
Reply to: