Chinaunix首页 | 论坛 | 博客
  • 博客访问: 131181
  • 博文数量: 42
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 448
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-07 12:02
文章分类
文章存档

2010年(42)

我的朋友

分类:

2010-08-17 13:26:03

2) 用popen()函数打开进程
上面的方法只能简单地执行命令,却不能与命令交互。但有些时候必须向命令输入一些东西,如在增加Linux的系统用户时,要调用su来把当前用户换到root才行,而su命令必须要在命令行上输入root的密码。这种情况下,用上面提到的方法显然是不行的。
popen ()函数打开一个进程管道来执行给定的命令,返回一个文件句柄。既然返回的是一个文件句柄,那么就可以对它读和写了。在PHP3中,对这种句柄只能做单一 的操作模式,要么写,要么读;从PHP4开始,可以同时读和写了。除非这个句柄是以一种模式(读或写)打开的,否则必须调用pclose()函数来关闭 它。
例子1:

1$fp=popen("/bin/ls -l""r");

例子2

01/* PHP中如何增加一个系统用户
02下面是一段例程,增加一个名字为james的用户,
03root密码是 verygood。仅供参考
04*/
05$sucommand "su --login root --command";
06$useradd "useradd ";
07$rootpasswd "verygood";
08$user "james";
09$user_add = sprintf("%s "%s %s"",$sucommand,$useradd,$user);
10$fp = @popen($user_add,"w");
11@fputs($fp,$rootpasswd);
12@pclose($fp);

阅读(507) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~