PHP: expect_expectl - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

expect_popen Expect

Last updated: Sat, 27 Jan 2007

view this page in

# expect_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

## Описание

mixed expect_expectl ( resource expect, array cases, array &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. The matched string can be found in `match[0]`. The match substrings (according to the parentheses) in the original pattern can be found in `match[1]`, `match[2]`, and so on, up to `match[9]` (the limitation of libexpect).

## Список параметров

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

  Таблица 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`

## Возвращаемые значения

Returns value associated with the pattern that was matched.

On failure this function returns: `EXP_EOF`, `EXP_TIMEOUT` or `EXP_FULLBUFFER`

## Список изменений

Версия | Описание
--- | ---
0.2.1 | Prior to version 0.2.1, in `match` parameter a match string was returned, not an array of match substrings.

## Примеры

Пример 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);
?>`

## Смотрите также

expect_popen()

add a note User Contributed Notes
expect_expectl
There are no user contributed notes for this page.
expect_popen Expect

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 11:33:19 2007 PST