Manuale PHP
Indietro |  | Avanti

# XXXIV. Expect Functions

# Introduzione

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.

# Requisiti

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

# Installazione

This PECL extension is not bundled with PHP. Additional information such as new releases, downloads, source files, maintainer information, and a CHANGELOG, can be located here: http://pecl.php.net/package/expect.

In PHP 4 this PECL extensions source can be found in the `ext/` directory within the PHP source or at the PECL link above. 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. In PHP 4 this DLL resides in the `extensions/` directory within the PHP Windows binaries download. You may download this PECL extension DLL from the PHP Downloads page or at http://snaps.php.net/.

# Configurazione di Runtime

Il comportamento di queste funzioni è influenzato dalle impostazioni di `php.ini`.

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

Tabella 1. Expect Opioni di configurazione

Nome | Default | Modificabile | Changelog
--- | --- | --- | ---
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "On" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |

Per maggiori dettagli sulle costanti PHP_INI_* vedere Appendice G.

Breve descrizione dei parametri di configurazione.

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.

  > Nota: 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.

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

# Tipi di risorse

Questa estensione non definisce alcun tipo di risorsa.

# Costanti predefinite

Queste costanti sono definite da questa estensione e sono disponibili solo se l'estensione è stata compilata nel PHP o se è stata caricata dinamicamente a runtime.

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

# Esempi

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

Esempio 1. Expect Usage Example

`<?php
ini_set ("expect.loguser", "Off");
$stream = popen ("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);
?>`

Indietro | Partenza | Avanti
read_exif_data | Risali | expect_expectl