我有程序路径为:/usr/src/myappMamou/apps/myapp
在命令行中,首先启动程序myapp后,可以输入命令运行程序如:send arg1 arg2 arg3
这样可以程序可以运行成功现在想在PHP中完成上述功能,不需要每次在命令行中输入命令 :send arg1 arg2 arg3 也能达到一样的效果PHP如下: $fixedcmd="send 123456063 10000 1111111";
$ph="/usr/src/myappMamou/apps/myapp";
$rs = popen(\"$ph\" \"$fixedcmd\", "r" );
pclose($rs);
运行达不到效果,请教大家有什么问题吗?非常感谢
在命令行中,首先启动程序myapp后,可以输入命令运行程序如:send arg1 arg2 arg3
这样可以程序可以运行成功现在想在PHP中完成上述功能,不需要每次在命令行中输入命令 :send arg1 arg2 arg3 也能达到一样的效果PHP如下: $fixedcmd="send 123456063 10000 1111111";
$ph="/usr/src/myappMamou/apps/myapp";
$rs = popen(\"$ph\" \"$fixedcmd\", "r" );
pclose($rs);
运行达不到效果,请教大家有什么问题吗?非常感谢
2、“首先启动程序myapp后”是说这个程序单独启动么?能否给出一个send arg1 arg2 arg3 的关系的截图
3、执行启动myapp时当前路径是否必须在一定的位置下?
1、php是放在apache中执行的,具有权限
2、“首先启动程序myapp后”指的是在命令行中启动程序,如./myapp,之后进入程序中myapp>
输入的命令如send arg1 arg2 arg3,send是命令其它三个是参数
3、执行启动myapp时当前路径是否必须在一定的位置下,只有到了/usr/src/myappMamou/apps下才可运行,是不是要弄成系统命令那样才行,就是在任意位置输入命令myapp即可启动程序
请教了
咋么也得写作
$rs = popen("$ph $fixedcmd", "r" );
吧
<?php
$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", "/tmp/error-output.txt", "a") // stderr is a file to write to
);$cwd = '/usr/src/myappMamou/apps';$process = proc_open('myapps', $descriptorspec, $pipes, $cwd);if (is_resource($process)) {
// $pipes now looks like this:
// 0 => writeable handle connected to child stdin
// 1 => readable handle connected to child stdout
// Any error output will be appended to /tmp/error-output.txt $fixedcmd="send 123456063 10000 1111111";
fwrite($pipes[0], $fixedcmd);
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";
}