2) 用popen()函数打开进程
上面的方法只能简单地执行命令,却不能与命令交互。但有些时候必须向命令输入一些东西,如在增加Linux的系统用户时,要调用su来把当前用户换到root才行,而su命令必须要在命令行上输入root的密码。这种情况下,用上面提到的方法显然是不行的。
popen ()函数打开一个进程管道来执行给定的命令,返回一个文件句柄。既然返回的是一个文件句柄,那么就可以对它读和写了。在PHP3中,对这种句柄只能做单一 的操作模式,要么写,要么读;从PHP4开始,可以同时读和写了。除非这个句柄是以一种模式(读或写)打开的,否则必须调用pclose()函数来关闭 它。
例子1:
1 | $fp =popen( "/bin/ls -l" , "r" ); |
例子2
05 | $sucommand = "su --login root --command" ; |
07 | $rootpasswd = "verygood" ; |
09 | $user_add = sprintf( "%s " %s %s "" , $sucommand , $useradd , $user ); |
10 | $fp = @popen( $user_add , "w" ); |
11 | @ fputs ( $fp , $rootpasswd ); |
阅读(548) | 评论(0) | 转发(0) |