Cette extension autorise l'interaction avec des processus à travers PTY. Vous pouvez utiliser l'enveloppe expect:// avec les fonctions de système de fichiers ce qui fourni une interface simple et plus intuitive.
Ce module utilise les fonctions de la bibliothèque » expect. Vous avez besoin de la libexpect version >= 5.43.0.
Cette extension » PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/expect.
En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Afin d'utiliser ces fonctions, vous devez compiler PHP avec le support expect en utilisant l'option de configuration --with-expect[=DIR].
Les utilisateurs de Windows pourront activer php_expect.dll à l'intérieur du php.ini afin d'utiliser ces fonctions. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées. La bibliothèque DLL pour cette extension PECL peut être téléchargée depuis, soit la page de » téléchargement PHP, soit depuis » http://pecl4win.php.net/
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Afin de configurer l'extension expect, il y a des options de configuration dans le fichier de configuration php.ini.
Tableau 87. Options de configuration Expect
Nom | Par défaut | Modifiable | Historique |
---|---|---|---|
expect.timeout | "10" | PHP_INI_ALL | |
expect.loguser | "1" | PHP_INI_ALL | |
expect.logfile | "" | PHP_INI_ALL |
Voici un éclaircissement sur l'utilisation des directives de configuration.
La période de dépassement du temps pour attendre pour les données, lors de l'utilisation de la fonction expect_expectl().
Une valeur de "-1" désactive le dépassement de temps.
Note: Une valeur de "0" fait retourner immédiatement la fonction expect_expectl().
Si expect devrait envoyer toutes les données de sortie à partir du démarrage du processus à stdout. Puisque les programmes interactifs affiche typiquement leur entrée, ceci suffit habituellement pour montrer les deux côtés de la conversation.
Nom du fichier, où la sortie à partir du démarrage du processus devrait être écrite. Si ce fichier n'existe pas, il sera créé.
Note: Si cette configuration n'est pas vide, la sortie est écrite peu importe la valeur de expect.loguser.
expect_popen() retourne un flux ouvert PTY utilisé par la fonction expect_expectl().
Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.
Cet exemple se connecte à un hôte distant via SSH et affiche le temps d'utilisation distant.
Exemple 746. Exemple d'Utilisation avec Expect
<?php
ini_set ("expect.loguser", "Off");
$stream = fopen ("expect://ssh root@remotehost uptime", "r");
$cases = array (
array (0 => "password:", 1 => PASSWORD)
);
switch (expect_expectl ($stream, $cases))
{
case PASSWORD:
fwrite ($stream, "password\n");
break;
default:
die ("Une erreur s'est produite lors de la connexion à l'hôte distant !\n");
}
while ($line = fgets ($stream)) {
print $line;
}
fclose ($stream);
?>