PHP Manual
Prev |  | Next

# 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

## Description

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

## Return Values

Returns value associated with the pattern that was matched.

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

## 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); ?>`

## See Also

expect_popen()

Prev | Home | Next
Expect Functions | Up | expect_popen