PHP.mk документација

Примери за употреба на Очекување

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

expect.examples-usage.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека expect.examples-usage.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
Примери за употреба на Очекување

Референца за `expect.examples-usage.php` со подобрена типографија и навигација.

expect.examples-usage.php

Примери за употреба на Очекување

Пример #1 Очекувано Пример за употреба

Овој пример се поврзува со оддалечениот домаќин преку SSH и го печати оддалеченото време на работа.

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

Следниот пример се поврзува со оддалечениот домаќин, утврдува дали инсталираниот оперативен систем е за 32 или 64 бита, а потоа извршува ажурирање за специфичен пакет.

Пример #2 Друг Пример за очекувана употреба

<?php
ini_set
("expect.timeout", -1);
ini_set("expect.loguser", "Off");

$stream = expect_popen("ssh root@remotehost");

while (
true) {
switch (
expect_expectl ($stream, array (
array (
"password:", PASSWORD), // SSH is asking for password
array ("yes/no)?", YESNO), // SSH is asking whether to store the host entry
array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
))) {
case
PASSWORD:
fwrite ($stream, "secret\n");
break;

case
YESNO:
fwrite ($stream, "yes\n");
break;

case
SHELL:
fwrite ($stream, "uname -a\n");
while (
true) {
switch (
expect_expectl ($stream, array (
array (
"~$ ", SHELL, EXP_EXACT), // We've got the shell!
array ("^Linux.*$", UNAME, EXP_REGEXP), // uname -a output
), $match)) {
case
UNAME:
$uname .= $match[0];
break;

case
SHELL:
// Run update:
if (strstr ($uname, "x86_64")) {
fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_64bit.rpm\n");
} else {
fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_32bit.rpm\n");
}
fwrite ($stream, "exit\n");
break
2;

case
EXP_TIMEOUT:
case
EXP_EOF:
break
2;

default:
die (
"Error has occurred!\n");
}
}
break
2;

case
EXP_TIMEOUT:
case
EXP_EOF:
break
2;

default:
die (
"Error has occurred!\n");
}
}

fclose ($stream);
?>

Белешки од корисници 1 белешка

Давид дккл
пред 13 години
If using the examples with telnet instead of ssh, note that telnet may need \r (Carriage Return) instead of \n (New Line)
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.