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); |
阅读(587) | 评论(0) | 转发(0) |