Maison >développement back-end >tutoriel php >Comment capturer et gérer la sortie StdErr après avoir utilisé exec() de PHP ?
Comment accéder à StdErr après Exec() en PHP
En PHP, la fonction exec() exécute une commande et renvoie sa sortie sous la forme une chaîne. Toutefois, si la commande produit des erreurs, celles-ci sont généralement supprimées et non affichées. Pour gérer de telles erreurs, comprendre les flux stderr est crucial.
Utiliser proc_open pour lire StdErr
Pour accéder à stderr après avoir exécuté une commande, vous pouvez utiliser la fonction proc_open() , qui offre un contrôle granulaire sur le processus d'exécution. Il vous permet de définir des flux d'entrée/sortie pour stdin, stdout et stderr.
Voici un exemple :
$descriptorspec = [ 0 => ["pipe", "r"], // stdin 1 => ["pipe", "w"], // stdout 2 => ["pipe", "w"], // stderr ]; $process = proc_open('./test.sh', $descriptorspec, $pipes, dirname(__FILE__), null); $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]);
En lisant à partir du flux $pipes[2], vous pouvez accéder la sortie stderr produite par la commande exécutée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!