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:
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.