expect_expectl
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
expect_expectl
Референца за `function.expect-expectl.php` со подобрена типографија и навигација.
expect_expectl
(PECL expect >= 0.1.0)
expect_expectl — Чека додека излезот од процесот не се совпадне со еден од обрасците, поминат е одреден временски период, или EOF се гледа
= NULL
Чека додека излезот од процесот не се совпадне со еден од обрасците, поминат е одреден временски период, или EOF се гледа.
Враќа match е обезбедено, тогаш се пополнува со резултатот од пребарувањето. Совпаднатиот стринг може да се најде во match[0]. Совпаднатите под-стрингови (според заградите) во оригиналниот образец може да се најдат во match[1], match[2], и така натаму, до match[9] (ограничувањето на libexpect).
Параметри
expect- Expect поток, претходно отворен со expect_popen().
cases-
Низа од очекувани случаи. Секој очекуван случај е индексирана низа, како што е опишано во следната табела:
Очекуван случај Низа Индекс Клуч Тип на вредност = NULL Задолжително Стандардна вредност 0 string образец, кој ќе се совпадне со излезот од потокот yes 1 mixed вредност, што ќе ја врати оваа функција, ако образецот се совпадне yes 2 integer тип на образец, еден од: EXP_GLOB,EXP_EXACTorEXP_REGEXPno EXP_GLOB
Вратени вредности
Враќа вредност поврзана со образецот што се совпадна.
При неуспех оваа функција враќа:
EXP_EOF,
EXP_TIMEOUT
or
EXP_FULLBUFFER
Дневник на промени
| Верзија | = NULL |
|---|---|
| PECL очекува 0.2.1 |
Пред верзијата 0.2.1, во match параметарот беше вратен стринг за совпаѓање, а не низа од поднизи за совпаѓање.
|
Примери
Пример #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(pattern, value to return if pattern matched)
array("password:", "asked for password"),
array("yes/no)?", "asked for yes/no")
);
while (true) {
switch (expect_expectl($stream, $cases)) {
case "asked for password":
fwrite($stream, "my password\n");
break;
case "asked for yes/no":
fwrite($stream, "yes\n");
break;
case EXP_TIMEOUT:
case EXP_EOF:
break 2; // break both the switch statement and the while loop
default:
die("Error has occurred!");
}
}
fclose($stream);
?>Види Исто така
- expect_popen() - Изврши команда преку Bourne школка и отвори го PTY потокот до процесот