Position actuelle: Accueil> Derniers articles> Comment utiliser PCLOSE et POPEN ensemble? Jetons un coup d'œil à un exemple pratique de base

Comment utiliser PCLOSE et POPEN ensemble? Jetons un coup d'œil à un exemple pratique de base

gitbox 2025-09-12
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Le paragraphe suivant n&#39;a rien à voir avec le contenu de l&#39;article,Peut être utilisé comme un exemple de code préfixé</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Ceci est un exemple du contenu de l&#39;aperçu de l&#39;article\n"</span></span><span>;
</span><span><span class="hljs-variable">$time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Heure actuelle:<span class="hljs-subst">$time</span></span></span><span>\n";
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
titre: [pcloseetpopenComment l&#39;utiliser ensemble?Jetons un coup d&#39;œil à un exemple pratique de base]
*/</span>

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"exister PHP milieu,popen() et pclose() Les fonctions sont souvent utilisées pour exécuter les commandes système et obtenir leur sortie。Ci-dessous, nous utilisons l&#39;exemple le plus élémentaire pour illustrer leur utilisation。\n\n"</span></span><span>;

</span><span><span class="hljs-comment">// 1. utiliser popen Ouvrir un processus</span></span><span>
</span><span><span class="hljs-comment">// 'r' 模式表示我们将从命令milieu读取输出</span></span><span>
</span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">popen</span></span><span>(</span><span><span class="hljs-string">"ls -l"</span></span><span>, </span><span><span class="hljs-string">"r"</span></span><span>); </span><span><span class="hljs-comment">// exister Windows Peut être changé en 'dir'</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$handle</span></span><span>) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Impossible d&#39;ouvrir le processus\n"</span></span><span>);
}

</span><span><span class="hljs-comment">// 2. Lire la sortie de la commande</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"La sortie de commande est la suivante:\n"</span></span><span>;
</span><span><span class="hljs-keyword">while</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">feof</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>)) {
    </span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgets</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$line</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$line</span></span><span>;
    }
}

</span><span><span class="hljs-comment">// 3. utiliser pclose Fermez le processus et obtenez la valeur de retour</span></span><span>
</span><span><span class="hljs-variable">$return_value</span></span><span> = </span><span><span class="hljs-title function_ invoke__">pclose</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\nValeur de rendement du processus:<span class="hljs-subst">$return_value</span></span></span><span>\n";

<span class="hljs-comment">/*
Analyse:
1. popen() Un processus d&#39;enfant sera démarré pour exécuter la commande spécifiée,et renvoyer une poignée de fichier。
2. passer fgets() ou fread() La sortie du processus de l&#39;enfant peut être lue ligne par ligne。
3. Après la fin de la lecture,必须utiliser pclose() Fermez la poignée,Obtenez le statut de sortie de la commande en même temps。
4. 'r' Le mode signifie la sortie de lecture,'w' Le mode signifie les données d&#39;entrée au processus。
Cette combinaison est très adaptée aux scénarios où la sortie de commande en temps réel est nécessaire。
*/</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>
  • Étiquettes associées:

    popen