PHP Handbuch
Zurück |  | Weiter

# XXXV. Expect Functions

# Einführung

This extension allows to interact with processes through PTY. You may consider using the `expect://` wrapper with the filesystem functions which provide a simpler and more intuitive interface.

# Anforderungen

This module uses the functions of the expect library. You need libexpect version >= 5.43.0.

# Installation

Diese PECL Erweiterung ist nicht Teil von PHP. Zusätzliche Informationen, wie neue Releases, Downloads Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: http://pecl.php.net/package/expect.

Für PHP 4 finden Sie die Quellen dieser PECL Erweiterung im `ext/` Verzeichnis innerhalb der PHP Quellen oder unter dem PECL Link wie oben angegeben. In order to use these functions you must compile PHP with expect support by using the `--with-expect[=DIR]` configure option.

Windows users will enable `php_expect.dll` inside of `php.ini` in order to use these functions. Für PHP 4 finden Sie die DLL im `extensions/` Verzeichnis der PHP Windows Binärdistribution. Sie können die DLL für diese PECL Erweiterung entweder von PHP Downloads oder von http://snaps.php.net/ herunterladen.

# Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der `php.ini` beeinflusst.

In order to configure expect extension, there are configuration options in the configuration file `php.ini`.

Tabelle 1. Expect Konfigurationsoptionen

Name | Standard | Veränderbar | Changelog
--- | --- | --- | ---
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |

Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Anhang H.

Hier eine kurze Erklärung der Konfigurationsoptionen:

`expect.timeout` integer

  The timeout period for waiting for the data, when using the expect_expectl() function.

  A value of "-1" disables a timeout from occurring.

  > Anmerkung: A value of "0" causes the expect_expectl() function to return immediately.

`expect.loguser` boolean

  Whether expect should send any output from the spawned process to stdout. Since interactive programs typically echo their input, this usually suffices to show both sides of the conversation.

`expect.logfile` string

  Name of the file, where the output from the spawned process will be written. If this file doesn't exist, it will be created.

  > Anmerkung: If this configuration is not empty, the output is written regardless of the value of expect.loguser.

# Resource Typen

expect_popen() returns an open PTY stream used by expect_expectl().

# Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

`EXP_GLOB` (integer)

  Indicates that the pattern is a glob-style string pattern.

`EXP_EXACT` (integer)

  Indicates that the pattern is an exact string.

`EXP_REGEXP` (integer)

  Indicates that the pattern is a regexp-style string pattern.

`EXP_EOF` (integer)

  Value, returned by expect_expectl(), when EOF is reached.

`EXP_TIMEOUT` (integer)

  Value, returned by expect_expectl() upon timeout of seconds, specified in value of expect.timeout

`EXP_FULLBUFFER` (integer)

  Value, returned by expect_expectl() if no pattern have been matched.

# Beispiele

This example connects to the remote host via SSH, and prints the remote uptime.

Beispiel 1. Expect Usage Example

`<?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 ("Error was occurred while connecting to the remote host!\n");
}
while ($line = fgets ($stream)) {
print $line;
}
fclose ($stream);
?>`

Zurück | Zum Anfang | Weiter
read_exif_data | Nach oben | expect_expectl