Position actuelle: Accueil> Derniers articles> Dans PHP, comment utiliser est_exécuable pour juger avec précision les résultats de l'exécution de la commande avec la fonction système?

Dans PHP, comment utiliser est_exécuable pour juger avec précision les résultats de l'exécution de la commande avec la fonction système?

gitbox 2025-09-20

Dans PHP, une façon courante d'exécuter des commandes système est via la fonction System () , qui peut exécuter une commande spécifiée et renvoyer le résultat d'exécution. Si vous devez déterminer plus précisément si une commande peut être exécutée et obtenir son résultat d'exécution, vous pouvez combiner la fonction is_execuable () pour l'implémenter.

1. Introduction à la fonction is_execuable ()

La fonction is_exécuable () est utilisée pour vérifier si le fichier spécifié est exécutable. Il renvoie true si le fichier existe et est exécutable, renvoyez false autrement. Ceci est très utile pour déterminer si un fichier a des autorisations d'exécution.

 <span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span></span>
  • $ fichier : le chemin du fichier à vérifier.

  • Valeur de retour: renvoyez True si le fichier existe et est exécutable, sinon renvoyez false .

2. Introduction à la fonction System ()

La fonction System () est utilisée pour exécuter la commande spécifiée et sortir le résultat. Si la commande s'exécute avec succès, il publie le résultat d'exécution de la commande et renvoie le contenu de la dernière ligne.

 <span><span><span class="hljs-title function_ invoke__">system</span></span><span>(</span><span><span class="hljs-variable">$command</span></span><span>, &amp;</span><span><span class="hljs-variable">$return_var</span></span><span>);
</span></span>
  • $ Command : la commande à exécuter.

  • $ return_var : le code d'état est retourné après l'exécution de la commande. Habituellement, 0 signifie que l'exécution de la commande est réussie et non 0 signifie que l'exécution de la commande est en panne.

3. Utiliser is_execuable () et system () pour coordonner pour déterminer les résultats d'exécution de la commande

La combinaison des fonctions is_execuable () et system () peut déterminer avec précision si la commande peut être exécutée et obtenir le résultat d'exécution réel de la commande. Le processus est généralement le suivant:

  1. Vérifiez si la commande ou le script est exécutable : Avant d'appeler System () pour exécuter la commande, utilisez is_execuable () pour déterminer si la commande ou le script a des autorisations d'exécution.

  2. Exécutez la commande et déterminez le résultat d'exécution : Si la commande est exécutable, utilisez System () pour exécuter et obtenir l'état d'exécution de la commande via $ return_var . Déterminez si la commande est exécutée avec succès en fonction du code d'état.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$command</span></span><span> = </span><span><span class="hljs-string">'/path/to/your/script.sh'</span></span><span>; </span><span><span class="hljs-comment">// Supposons que ce soit le chemin de script qui doit être exécuté</span></span><span>

</span><span><span class="hljs-comment">// étape 1:Vérifiez si la commande est exécutable</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$command</span></span><span>)) {
    </span><span><span class="hljs-comment">// étape 2:Exécuter la commande</span></span><span>
    </span><span><span class="hljs-variable">$return_var</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
    </span><span><span class="hljs-variable">$output</span></span><span> = </span><span><span class="hljs-title function_ invoke__">system</span></span><span>(</span><span><span class="hljs-variable">$command</span></span><span>, </span><span><span class="hljs-variable">$return_var</span></span><span>);
    
    </span><span><span class="hljs-comment">// Déterminez le résultat d&#39;exécution de la commande en fonction du code d&#39;état d&#39;exécution</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$return_var</span></span><span> === </span><span><span class="hljs-number">0</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"L&#39;exécution de la commande est réussie,Résultat de sortie:\n<span class="hljs-subst">$output</span></span></span><span>";
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"L&#39;exécution de la commande a échoué,Code d&#39;état:<span class="hljs-subst">$return_var</span></span></span><span>";
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"La commande n&#39;est pas exécutable ou n&#39;existe pas!"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

4. Scénarios d'application courants

  • Vérification de l'autorisation du fichier : Avant d'exécuter des scripts de shell ou des commandes système, vous pouvez d'abord vérifier si le fichier a des autorisations d'exécution pour éviter les erreurs avec des autorisations insuffisantes.

  • Script de déploiement automatisé : Pendant le processus de déploiement automatisé, vous pouvez utiliser des scripts PHP pour exécuter les commandes shell, mais avant l'exécution, déterminez d'abord si la commande est valide et exécutable.

  • Vérification de la sécurité : lors de l'exécution de commandes externes, assurez-vous que la commande est légale et sûre pour empêcher l'exécution des commandes malveillantes.

5. Choses à noter

  • Problème des autorisations : les autorisations du processus PHP actuel peuvent affecter l'exécution de la commande même si le fichier existe et est marqué comme exécutable. Par conséquent, assurez-vous que le processus PHP a une autorisation suffisante pour exécuter les commandes pertinentes.

  • Chemin de commande : lors de l'appel System () pour exécuter les commandes, il est préférable d'utiliser le chemin absolu de la commande pour éviter la recherche de la recherche de commandes en raison de différentes variables d'environnement.

  • Traitement de la valeur de retour : le code d'état obtenu via $ return_var peut non seulement aider à déterminer si la commande est réussie, mais peut également être utilisée pour le débogage et le traitement des erreurs.

En combinant IS_EXECUTABLE () et System () , nous pouvons juger et exécuter les commandes système plus en toute sécurité et avec précision, évitant ainsi les erreurs causées par les autorisations de fichiers ou les défaillances d'exécution, et l'amélioration de la stabilité et de la maintenabilité du code.