我试图写一个PHP页面
要求一个服务器程序
gdb问题是如果我这样做
exec(" gdb code", $out);
?>PHP调用该命令并存在
但是我想要做的就像打开一个“终端”会话
用户在该程序中输入命令
gdb code
..
break main
..
run在每次命令之后,我给他输出,他给我下一个命令
如果我这样做,它将不起作用
exec(" gdb code", $out);
exec(" break", $out);
exec(" run", $out);
?>并且PHP可以从浏览器运行
我用pro_open试了一下
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", "/var/www/err.log", "a")
);
$cwd = '/var/www';
$env = array('some_option' => 'aeiou');
$StdErr='';
$process = proc_open('/bin/bash', $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) {
fwrite($pipes[0], "gcc code ");
fwrite($pipes[0], " break main");
fflush($pipes[0]);
fclose($pipes[0]);
while(!feof($pipes[1])) {
echo fgets($pipes[1], 1024);
}
echo $StdErr;
fclose($pipes[1]);
$return_value = proc_close($process);
echo "command returned : $return_value\n";
}并感谢你。