php 如何利用管道(pipe)与shell互交
如在linux里删除文件file,执行命令rmfile后就会出现一个选项rm:removeregularfile`file'?这时再输入不同的指令来完成不同的效果。这种功...
如在linux里删除文件file,执行命令
rm file
后就会出现一个选项
rm: remove regular file `file'?
这时再输入不同的指令来完成不同的效果。
这种功能怎么用php脚本实现呢?并且我要获取shell返回的选项信息
据说可以用双向管道来做,proc_open但找了半天也没找到一个有用的例子,哪个牛人给我说说啊~~ 展开
rm file
后就会出现一个选项
rm: remove regular file `file'?
这时再输入不同的指令来完成不同的效果。
这种功能怎么用php脚本实现呢?并且我要获取shell返回的选项信息
据说可以用双向管道来做,proc_open但找了半天也没找到一个有用的例子,哪个牛人给我说说啊~~ 展开
1个回答
展开全部
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "./error-output.txt", "a") // stderr is a file to write to
);
$cwd = '/tmp';
$exta = array('bypass_shell' => true);
$process = proc_open("C:\\APMServ\\APMServ5.2.6\\www\\Lk\\lkwizard.exe", $descriptorspec, $pipes, null, null, $exta);
if (is_resource($process))
{
fclose($pipes[0]);
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
// It is important that you close any pipes before calling
// proc_close in order to avoid a deadlock
$return_value = proc_close($process);
// echo "command returned $return_value\n";
}
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "./error-output.txt", "a") // stderr is a file to write to
);
$cwd = '/tmp';
$exta = array('bypass_shell' => true);
$process = proc_open("C:\\APMServ\\APMServ5.2.6\\www\\Lk\\lkwizard.exe", $descriptorspec, $pipes, null, null, $exta);
if (is_resource($process))
{
fclose($pipes[0]);
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
// It is important that you close any pipes before calling
// proc_close in order to avoid a deadlock
$return_value = proc_close($process);
// echo "command returned $return_value\n";
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询