在PHP中打开Linux终端命令

在PHP中打开Linux终端命令,第1张

概述我有一台在Linux上运行的服务器,它可以执行12个节点的命令(其中12个运行Linux的计算机).我最近在服务器上下载了PHP,以创建可以通过打开特定的PHP文件来执行命令的网页.我使用了exec(),passthru(),shell_exec()和system(). system()是唯一一个返回我的代码的一部分.我希望PHP在linux中像开放的ter

我有一台在Linux上运行的服务器,它可以执行12个节点的命令(其中12个运行linux的计算机).我最近在服务器上下载了PHP,以创建可以通过打开特定的PHP文件来执行命令的网页.

我使用了exec(),passthru(),shell_exec()和system(). system()是唯一一个返回我的代码的一部分.我希望PHP在linux中像开放的termainal命令一样,我无法弄清楚如何做到这一点!

这是一个现在正在发生的事情的例子(linux直接与PHP):
直接使用linux open terminal命令时:

user@wizard:/home/hyperwall/Desktop> /usr/local/bin/chbg -mt

我得到一个输出:

The following settings will be used:  option = mtsu   color =    IMAGE = imagehereyoukNow!  NODES  = LOCALand additional code to send it to 12 nodes.

现在使用PHP:

switch($_REQUEST['do']){ case 'test':    echo system('/usr/local/bin/chbg -mt');    break;}

输出:

The following settings will be used:  option = mtsu   color =    IMAGE = imagehereyoukNow!  NODES  = LOCAL

然后停下来!任何人都有解释发生了什么?以及如何解决它?只有系统显示部分代码,其他功能不显示任何内容!最佳答案我的第一个想法是它可能是关于std和输出错误的东西.有些软件会在std out上转储一些信息,有些则在std错误中转储.当您没有将std错误重定向到std out时,大多数系统调用只返回stdout部分.听起来这就是为什么你在终端看到整个输出而不能在系统调用中.
所以试试吧

 /usr/local/bin/chbg -mt 2>&1  

编辑:
另外,对于临时工作,您可以尝试其他一些事情.例如,将输出重定向到脚本旁边的文件并在执行命令后读取其内容,这样就可以使用exec:

exec("usr/local/bin/chbg -mt 2>&1 > chbg_out");//Then start reading chbg_out and see is it work

EDIT2
另外,为什么其他人不为你工作也没有意义.
例如,这段用c编写的代码,在stderr中转储一个字符串,stdout中还有其他代码.

#include 

和这个PHP脚本,尝试通过exec运行:

看到它仍然倾倒了标准输出.但它没有收到stderr.
现在考虑一下:

看,这次我们得到了整个产出.

这次系统:

等等 …@H_404_99@ 总结

以上是内存溢出为你收集整理的在PHP中打开Linux终端命令全部内容,希望文章能够帮你解决在PHP中打开Linux终端命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047067.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)