Description
resource
popen ( string command, string mode )
popen() ouvre un processus fils
en faisant un fork de la commande command.
popen() retourne un pointeur de fichier
identique à celui retourné par fopen(),
hormis le fait qu'il sera unidirectionnel (lecture seule, ou
écriture seule), et doit être terminé par
pclose(). Ce pointeur peut être utilisé
avec fgets(), fgetss() et
fputs().
Si une erreur survient, retourne FALSE.
Exemple 1. Exemple avec popen()
<?php $handle = popen ("/bin/ls", "r"); ?>
|
|
Note :
Si la commande à exécuter n'a pu être trouvée, une ressource
valide sera retournée. Cela semble étrange, mais c'est pratique.
cela vous permet d'accéder aux messages d'erreur qui ont été
retournés par le Shell :
Exemple 2. Lire des messages d'erreurs avec popen()
<?php error_reporting(E_ALL);
/* Ajoute une redirection pour que vous puissiez lire stderr */ $handle = popen('/chemin/vers/spooge 2>&1', 'r'); echo "'$handle'; " . gettype($handle) . "\n"; $read = fread($handle, 2096); echo $read; pclose($handle); ?>
|
|
Note : Lorsque le
safe mode est activé, vous pouvez
uniquement exécuter des programmes qui se situent dans le dossier défini par
safe_mode_exec_dir.
Pour des raisons pratiques, il n'est actuellement pas permis d''avoir
le composant .. dans le chemin de l'exécutable.
| Avertissement |
Lorsque le safe mode est activé, la chaîne de commande
est echappée avec la fonction escapeshellcmd().
Par exemple, echo y | echo x devient
echo y \| echo x. |
Voir aussi
pclose(),
fopen() et
proc_open().