Position actuelle: Accueil> Catégories de fonctions> proc_open

proc_open

Exécutez une commande et ouvrez le pointeur de fichier utilisé pour l'entrée / sortie
Nom:proc_open
Catégorie:Exécution du programme
Langage de programmation:php
Description en une ligne:Exécutez une commande et ouvrez le pointeur de fichier utilisé pour l'entrée / sortie

Nom de la fonction: proc_open ()

Fonction Description: La fonction Proc_Open () exécute une commande et ouvre le pointeur de fichier utilisé pour l'entrée / sortie.

Version applicable: PHP 4> = 4.3.0, PHP 5, PHP 7

Syntaxe: ressource proc_open (String $ cmd, array $ descriptorspec, array & $ tuyaux [, string $ cwd [, array $ env [, array $ autres_options]]]))

paramètre:

  • CMD: La commande à exécuter peut être une commande simple ou un tableau contenant des commandes et des paramètres.
  • Descriptorspec: un tableau contenant des pointeurs de fichiers pour l'entrée / sortie. Chaque élément est un tableau contenant les valeurs de clé suivantes:
    • 0: entrée standard (stdin)
    • 1: sortie standard (stdout)
    • 2: Erreur standard (stderr)
  • tuyaux: stockera les tableaux de tous les pointeurs de fichiers pour l'entrée / la sortie
  • CWD (Facultatif): le répertoire de travail actuel dans lequel la commande doit être exécutée
  • Env (facultatif): un tableau utilisé pour définir des variables d'environnement
  • Autre_Options (facultatif): un tableau associatif contenant des options supplémentaires. Les options prises en charge sont:
    • Suppress_errors: désactive l'envoi de sortie d'erreur aux flux d'erreur standard. La valeur par défaut est fausse.

Valeur de retour: renvoie un identifiant de processus du type de ressource lors du succès et renvoie false en cas d'échec.

Exemple de code:

 // 执行一个简单的命令并读取输出$descriptorspec = array( 0 => array("pipe", "r"), // 标准输入1 => array("pipe", "w"), // 标准输出2 => array("pipe", "w") // 标准错误); $process = proc_open('ls -l', $descriptorspec, $pipes); if (is_resource($process)) { // 读取输出echo stream_get_contents($pipes[1]); // 关闭文件指针fclose($pipes[0]); fclose($pipes[1]); fclose($pipes[2]); // 等待进程结束,并获取返回值$return_value = proc_close($process); }

Dans cet exemple, nous utilisons proc_open () pour exécuter une commande simple "ls -l" et utilisons un pointeur de fichier pour lire la sortie de la commande. En définissant le tableau descriptororspec approprié, nous pouvons spécifier le type de pointeur de fichier pour l'entrée / sortie. Dans cet exemple, nous redirigeons l'entrée standard vers un pipeline et la sortie standard et l'erreur standard vers deux autres pipelines. Nous utilisons ensuite la fonction Stream_get_Contents () pour lire la sortie de la commande à partir du pipeline de sortie standard. Enfin, nous fermons tous les pointeurs de fichiers et utilisons proc_close () pour attendre que le processus se termine et obtenir la valeur de retour.

Fonctions similaires
Articles populaires