|
|
XXXIV. Expect Functions
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.
This module uses the functions of the expect library.
You need libexpect version >= 5.43.0.
This PECL extension
is not bundled with PHP.
Information for installing this PECL extension may be
found in the manual chapter titled Installation
of PECL extensions. 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/.
The behaviour of these functions is affected by settings in php.ini.
In order to configure expect extension, there are configuration options
in the configuration file php.ini.
Table 1. Expect Configure Options Name | Default | Changeable | Changelog |
---|
expect.timeout | "10" | PHP_INI_ALL | | expect.loguser | "1" | PHP_INI_ALL | | expect.logfile | "" | PHP_INI_ALL | |
For further details and definitions of the
PHP_INI_* constants, see the Appendix G.
Here's a short explanation of
the configuration directives.
- 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.
Note:
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.
Note:
If this configuration is not empty, the output is written regardless of
the value of expect.loguser.
This extension has no resource types defined.
The constants below are defined by this extension, and
will only be available when the extension has either
been compiled into PHP or dynamically loaded at runtime.
This example connects to the remote host via SSH, and prints the remote
uptime.
Example 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);
?> |
|
- Table of Contents
- expect_expectl -- Waits until the output from a process matches one
of the patterns, a specified time period has passed, or an EOF is seen
- expect_popen -- Exectute command via Bourne shell, and open the PTY stream to
the process
|
|
|