Comment dépanner les fonctions system() et exec() pour exécuter des programmes externes en PHP ?

Mary-Kate Olsen
Libérer: 2024-10-21 08:17:30
original
392 Les gens l'ont consulté

How to Troubleshoot system() and exec() Functions for Running External Programs in PHP?

Exécution de programmes externes en PHP : dépannage de system() et exec()

Pour lancer des processus externes dans des environnements PHP contrôlés, envisagez de dépanner le fonctions system() et exec(). Bien que ces fonctions puissent exécuter des processus silencieux, elles peuvent ne pas parvenir à afficher des applications avec une interface graphique visible, telles que le bloc-notes.

La solution réside dans l'activation de l'option « Autoriser le service à interagir avec le bureau » dans les paramètres du compte de connexion. du service Apache. Cela permet au service de se lancer et d'interagir avec les programmes GUI.

Exemple :

<code class="php"><?php
// Spawn notepad.exe and immediately continue script execution
pclose(popen("start /B notepad.exe", "r"));

// Spawn notepad.exe and wait for application to close
system('start notepad.exe');</code>
Copier après la connexion

Remarque :

  • Cette solution a été testée sur Windows XP mais peut nécessiter des ajustements pour d'autres versions de Windows.
  • Si le service Apache s'exécute sous un compte utilisateur de domaine, la case « Autoriser le service à interagir avec le bureau » n'est pas accessible. Dans ce cas, envisagez de séparer le service en deux composants : un avec les privilèges du compte utilisateur et un pour l'interaction avec le bureau, car diviser ces fonctionnalités n'est pas pratique pour les services essentiels tels que les serveurs Web.

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!

source:php
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!