• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP调用控制台EXE程序的步骤

php 搞代码 3年前 (2022-01-24) 23次浏览 已收录 0个评论

PHP调用控制台EXE程序的方法

1. 可以使用的函数有:exec、system、passthru、popen及反单引号五种,区别如下:

system() 输出并返回最后一行shell结果。

exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。

passthru() 只调用命令,把+本文来源gao@daima#com搞(%代@#码网

搞代gaodaima码

命令的运行结果原样地直接输出到标准输出设备上。

以上三个函数的相同点:都可以获得命令执行的返回值。

popen()是以管道方式打开,只能读或只能写,无法同时读写,也无法得到执行的返回值。

反单引号不输出结果,可以保存所有结果,无法得到执行的返回值。

2. 针对EXE程序中有输入情况的处理办法(main参数除外,因为可以放在命令行中,这里要处理的是cin、scanf这些需要在运行时输入的参数):

C++程序如下:test.cpp

#include

using namespace std;

int main()

{

int a, b;

cin >> a >> b;

cout << a + b << endl;

}

那么在PHP中可以简单使用echo管道即可:

system(“echo 1 2 | test.exe”);

然而,如果C++程序中有以行为单位的字符串输入,例如:

#include

#include

using namespace std;

int main()

{

string str;

while(getline(cin, str))

{

cout << str << endl;

}

}

若需要输入多行,则若在Linux平台,可以用echo -e管道来解决:

system(“echo -e ‘str1\nstr2’ | test.exe”);

如果在Windows平台,echo没有-e参数,就必须一次执行两次或多次echo,如下:

system(“( echo str1 & echo str2 ) | test.exe”);


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP调用控制台EXE程序的步骤

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址