expect_expectlexpect_expectl (no version information, might be only in CVS) 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
Descriptionmixed expect_expectl ( resource expect, array cases, string &match )
Waits until the output from a process matches one of the patterns,
a specified time period has passed, or an EOF is seen.
If match is provided, then it is filled with the
result of search.
Parameters
- expect
An Expect stream, previously opened with
expect_popen().
- cases
An array of expect cases. Each expect case is an indexed array,
as described in the following table:
Table 1. Expect Case Array Index Key | Value Type | Description | Is Mandatory | Default Value |
---|
0 | string | pattern, that will be matched against the output from the stream | yes | | 1 | mixed | value, that will be returned by this function, if the pattern matches | yes | | 2 | integer |
pattern type, one of:
EXP_GLOB,
EXP_EXACT
or
EXP_REGEXP
| no | EXP_GLOB |
Examples
Example 1. expect_expectl() example
<?php // Copies file from remote host: ini_set ("expect.timeout", 30);
$stream = fopen ("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");
$cases = array ( array (0 => "password:", 1 => PASSWORD), array (0 => "yes/no)?", 1 => YESNO) );
while (true) { switch (expect_expectl ($stream, $cases)) { case PASSWORD: fwrite ($stream, "password\n"); break;
case YESNO: fwrite ($stream, "yes\n"); break;
case EXP_TIMEOUT: case EXP_EOF: break 2; default: die ("Error has occurred!\n"); } }
fclose ($stream); ?>
|
|
|
|