|
Table des matières
XXXV. Fonctions ExpectIntroductionCette 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. Pré-requisCe module utilise les fonctions de la bibliothèque expect. Vous avez besoin de la libexpect version >= 5.43.0. InstallationCette 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. Vous pouvez télécharger ces bibliothèques DLL pour ces extensions PECL depuis la page de téléchargement de PHP sous sur la page http://snaps.php.net/. Configuration à l'exécutionLe comportement de ces fonctions est affecté par la configuration dans le fichier “php.ini”. Tableau 1. Options de configuration Expect
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe G. Voici un éclaircissement sur l’utilisation des directives de configuration. “expect.timeout” entier 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.
“expect.loguser” booléen 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. “expect.logfile” string Nom du fichier, où la sortie à partir du démarrage du processus devrait être écrite. Si ce fichier n’existe pas, il sera créé. Types de ressourcesCette extension ne définit aucune ressource. Constantes pré-définiesCes 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. “EXP_GLOB” (entier) Indique que le motif est un motif de style de chaîne de caractères glob. “EXP_EXACT” (entier) Indique que le motif est une chaîne exacte. “EXP_REGEXP” (entier) Indique que le motif est un motif de style de chaîne de caractères regexp. “EXP_EOF” (entier) Valeur, retournée par expect_expectl(), lorsque EOF est atteint. “EXP_TIMEOUT” (entier) “EXP_FULLBUFFER” (entier) Valeur, retournée par expect_expectl() si aucun motif n’a été trouvé. ExemplesCet exemple se connecte à un hôte distant via SSH et affiche le temps d’utilisation distant.
<?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); ?> Table des matières expect_expectl – Attend jusqu’à ce que la sortie d’un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu expect_popen – Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus Travail collaboratifContribuez, en ajjoutant des elements a cette page de manuel : Merci de votre aide |