XXXV. Fonctions Expect

Introduction

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.

Pré-requis

Ce module utilise les fonctions de la bibliothèque expect. Vous avez besoin de la libexpect version >= 5.43.0.

Installation

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. 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écution

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 1. Options de configuration Expect

NomPar défautModifiableHistorique
expect.timeout"10"PHP_INI_ALL 
expect.loguser"1"PHP_INI_ALL 
expect.logfile""PHP_INI_ALL 
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.

Note : Une valeur de "0" fait retourner immédiatement la fonction expect_expectl().

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

Note : Si cette configuration n'est pas vide, la sortie est écrite peu importe la valeur de expect.loguser.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

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.

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)

Valeur, retournée par expect_expectl() sur le dépassement du temps en secondes, spécifiée par la valeur expect.timeout

EXP_FULLBUFFER (entier)

Valeur, retournée par expect_expectl() si aucun motif n'a été trouvé.

Exemples

Cet exemple se connecte à un hôte distant via SSH et affiche le temps d'utilisation distant.

Exemple 1. 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);
?>
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


Rechercher une fonction PHP

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

5 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Références

  1. Consulter le document html Langue du document: fr Manuel PHP : http://be2.php.net, fonctions expect

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-4522
Document créé le 29/10/06 22:47, dernière modification le Vendredi 17 Juin 2011, 12:12
Source du document imprimé : http://www.gaudry.be/php-rf-ref.expect.html Document affiché 1 fois ce mois de Juin.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,29 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
En moyenne, chaque personne possède un testicule.

Anonyme
 
l'infobrol
Nous sommes le Dimanche 03 Juin 2012, 06:38, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)