downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
search for in the  

<Predefined ConstantsExpect Functions>
Last updated: Thu, 26 Jun 2008

Examples

Expect Usage Examples

Example #1 Expect Usage Example

This example connects to the remote host via SSH, and prints the remote uptime.

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

The following example connects to the remote host, determines whether installed OS is for 32 or 64 bit, then runs update for specific package.

Example #2 Another Expect Usage Example

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


add a noteadd a note User Contributed Notes
Examples
There are no user contributed notes for this page.




<Predefined ConstantsExpect Functions>
Last updated: Thu, 26 Jun 2008
show source | credits | sitemap | contact | advertising | mirror sites
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: http://phpbuilder.com/
Last updated: Tue Nov 1 20:20:59 2005 EST
Columns / Articles | Tips / Quickies | News | News Linking and RSS Feeds | Shared Code Library
Mail Archives | Support / Discussion Forums | Get Started! Links | Contribute! | Docs