Podręcznik PHP
Poprzedni |  | Następny

# XXXV. Expect Functions

# Wstęp

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.

# Wymagania

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

# Instalacja

To rozszerzenie PECL nie jest dołączane do PHP. Informacje na temat instalacji tego rozszerzenia PECL można znaleźć w podręczniku w rozdziale zatytułowanym Instalacja rozszerzeń PECL. Dodatkowe informacje, takie jak nowe wersje, pliki do pobrania, pliki źródłowe, informacje o opiekunach czy rejestr zmian, można znaleźć tutaj: http://pecl.php.net/package/expect.

W PHP 4 to rozszerzenie PECL można znaleźć w podkatalogu `ext/` źródeł PHP lub pod znajdującym się wyżej odnośnikiem PECL. 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. W PHP 4 ten DLL znajduje się w podkatalogu `extensions/` binarnej dystrybucji PHP dla Windows. DLL z tym rozszerzeniem PECL można pobrać ze strony PHP Downloads lub http://snaps.php.net/.

# Konfiguracja uruchomieniowa

Na działanie tych funcji wpływają ustawienia zawarte w pliku `php.ini`.

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

Tabela 1. Expect Opcje konfiguracyjne

Nazwa | Domyślnie | Zmienialne | Changelog
--- | --- | --- | ---
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |

Szczegóły i definicje dotyczące stałych PHP_INI_* znajdują się w rozdziale Dodatek G.

Oto krótkie wyjaśnienie dyrektyw konfiguracji.

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

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

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

# Typy zasobów

To rozszerzenie nie posiada żadnych rodzajów zasobów.

# Stałe predefiniowane

Poniższe stałe są zdefiniowane w tym rozszerzeniu i stają się dostępne, gdy rozszerzenie jest dokompilowane do PHP, lub załadowane dynamicznie przy starcie.

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

# Przykłady

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

Przykład 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);
?>`

Poprzedni | Spis treści | Następny
read_exif_data | Początek rozdziału | expect_expectl