 |
XXXIV. Expect Functions
This extension allows to interact with processes through PTY. You may
consider using the expect://
wrapper with the filesystem
functions which provide a simpler and more intuitive interface.
This module uses the functions of the expect library.
You need libexpect version >= 5.43.0.
本 PECL 扩展未绑定于 PHP 中。
进一步信息例如新版本,下载,源程序,维护者信息以及更新日志可以在此找到:
http://pecl.html.net/package/expect.
在 PHP 4 中本 PECL 扩展的源程序位于
PHP 源程序中的 ext/ 目录下或者在上面的
PECL 连接中。
In order to use these functions you must compile PHP with expect support
by using the --with-expect[=DIR]
configure option.
Windows users will enable php_expect.dll inside
of php.ini in order to use these functions.
在 PHP 4 中本 DLL 位于
PHP Windows 执行包中的 extensions/ 目录下。
可以从 PHP
下载页面或者 http://snaps.html.net/
下载此 PECL 扩展的
DLL 文件。
这些函数的行为受 php.ini 的影响。
In order to configure expect extension, there are configuration options
in the configuration file php.ini.
表格 1. Expect 配置选项 名字 | 默认 | 可修改范围 | Changelog |
---|
expect.timeout | "10" | PHP_INI_ALL | | expect.loguser | "On" | PHP_INI_ALL | | expect.logfile | "" | PHP_INI_ALL | |
有关 PHP_INI_* 常量进一步的细节与定义参见 附录 G。
以下是配置选项的简要解释。
- expect.timeout
integer
The timeout period for waiting for the data, when using the
expect_expectl() function.
A value of "-1" disables a timeout from occurring.
- expect.loguser
boolean
Whether expect should send any output from the spawned process to stdout.
Since interactive programs typically echo their input, this usually suffices
to show both sides of the conversation.
- expect.logfile
string
Name of the file, where the output from the spawned process will be
written. If this file doesn't exist, it will be created.
注:
If this configuration is not empty, the output is written regardless of
the value of expect.loguser.
以下常量由本扩展模块定义,因此只有在本扩展模块被编译到
PHP 中,或者在运行时被动态加载后才有效。
This example connects to the remote host via SSH, and prints the remote
uptime.
例子 1. Expect Usage Example <?php
ini_set ("expect.loguser", "Off");
$stream = popen ("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);
?> |
|
- 目录
- 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
- expect_popen -- Exectute command via Bourne shell, and open the PTY stream to
the process
|  |