Maison > développement back-end > Problème PHP > Que dois-je faire si system() en php ne renvoie pas de sortie ?

Que dois-je faire si system() en php ne renvoie pas de sortie ?

王林
Libérer: 2023-03-13 06:40:02
original
2491 Les gens l'ont consulté

Solution au problème selon lequel system() en php ne renvoie pas de sortie : redirigez l'erreur standard vers la sortie standard en ajoutant [2 >& 1] à la commande, par exemple [exec('some_command --option 2> & 1', $output, $ret);].

Que dois-je faire si system() en php ne renvoie pas de sortie ?

L'environnement d'exploitation de cet article : système windows10, php 7, ordinateur thinkpad t480.

Récemment, alors que je travaillais, j'ai découvert accidentellement que l'exécution de commandes courantes comme 'ls', exec() peut fonctionner correctement, par exemple :

 exec('ls',$输出,$ retval); 
 var_dump($ output,$ retval); 
 // $ output包含文件名数组,retval === 0
Copier après la connexion

Mais lorsque j'essaie d'exécuter un autre programme, je ne parviens pas à obtenir le résultat , comme suit :

exec('some_command --a_parameter',$ output ,$ retval); 
 var_dump($ output,$ retval); 
 // $ output包含一个空数组,结束$ retval === 0
Copier après la connexion

Lors de l'exécution de la commande directement depuis la ligne de commande, certaines lignes seront imprimées. Je sais que l'exécution de la commande a réussi et je peux voir les résultats (quelques mises à jour de fichiers, ajout de données, etc.), mais Je ne peux pas voir le résultat.

La fonction exec() ne capturera que la sortie standard. Je ne suis pas sûr que l'erreur standard soit toujours envoyée au journal des erreurs Apache, mais cela semble possible.

Si vous n'avez pas besoin d'utiliser un système Unix, nous pouvons en fait rediriger l'erreur standard vers la sortie standard en ajoutant 2>& 1 à la commande, afin que le problème puisse être résolu, par exemple :

 exec('some_command --option 2>& 1',$ output,$ ret);
Copier après la connexion

Recommandé apprentissage : Formation php

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal