我正在使用Windows XP.我可以通过调用自动执行ssh会话的TCL脚本,通过浏览器成功运行system()命令.我还从脚本中返回一个值.但问题是脚本会在浏览器中转储整个ssh会话.
我的php脚本看起来像:
$ lastline = system('"C:\ tcl\bin\tclsh.exe"\ path to file\filename.tcl'.$ username.''.$ pass,$ val);
filename.tcl:
spawn plink -ssh $ user @ $ host
expect"assword:"
send"$ pass\r \n"
expect"\ prompt:/ - >"
set $ return_value [string compare /..string../ $ expect_out(buffer)]
/...一些代码......这样运行正常/
退出$ return_value
一切运行正常,我得到正确的$ return_value,但php文件打印在我的浏览器中执行整个ssh会话的结果,如下所示:
使用用户名"admin".admin@10.135.25.150的密码:===/*some text*/===\prompt:/ - > .../some text/
我想阻止system()函数在我的浏览器中打印这个
我已经使用了shell_exec()函数,但是它返回了整个ssh会话结果(我已经在tcl脚本中解析并获得了一个精确的值来返回到php脚本)有没有办法,我可以不使用shell_exec()而是使用system()代替
提前致谢
csl*_*csl 26
执行外部程序并显示输出
在该页面上列出了备选方案.如果使用exec函数,它将只执行命令而不显示任何输出.
例:
<?php
echo "Hello, ";
system("ls -l");
echo "world!\n";
?>
Run Code Online (Sandbox Code Playgroud)
将显示以下输出system:
$ php -q foo.php
Hello, total 1
-rw-r--r-- 1 bar domain users 59 Jul 15 16:10 foo.php
world!
Run Code Online (Sandbox Code Playgroud)
使用exec时不会显示任何输出:
<?php
echo "Hello, ";
exec("ls -l");
echo "world!\n";
?>
$ php -q foo.php
Hello, world!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21950 次 |
| 最近记录: |