Utilisation de proc_open pour la gestion des flux en PHP
Lors de l'utilisation de exec() en PHP, il peut être avantageux de vérifier également stderr en cas de erreurs. Bien que l'utilisation de php://stderr soit une option, proc_open fournit une approche complète pour gérer séparément les flux stderr et stdout.
Considérez l'exemple suivant :
// Initialize stream descriptors $descriptorspec = [ 0 => ["pipe", "r"], // stdin 1 => ["pipe", "w"], // stdout 2 => ["pipe", "w"], // stderr ]; // Execute the command $process = proc_open('./test.sh', $descriptorspec, $pipes, dirname(__FILE__), null); // Read from the output streams $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]); // Output the results echo "stdout:\n"; var_dump($stdout); echo "stderr:\n"; var_dump($stderr);
En tirant parti de proc_open et du descripteurs de flux désignés, vous pouvez séparer et capturer efficacement la sortie de vos commandes PHP, vous permettant ainsi de gérer les erreurs et autres sorties de manière approprié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!