【发布时间】:2021-08-02 13:49:35
【问题描述】:
我正在尝试在 php 上运行 cpp 可执行文件,但它不起作用。请帮忙。
var_dump(shell_exec("D:\\c_cpp_programs\\string.exe"));
$output = system('D:\\c_cpp_programs\\string.exe', $retval);
var_dump($output);
passthru ('D:\\c_cpp_programs\\string.exe');
if(file_exists('D:/c_cpp_programs/string.exe'))
echo "File exist";
exec('D:/c_cpp_programs/string.exe',$array,$error);
var_dump($array);
var_dump($error);
下面是我得到的输出,
C:\wamp64\www\chatclub\application\views\test.php:2:null
C:\wamp64\www\chatclub\application\views\test.php:4:string '' (length=0)
File exist
C:\wamp64\www\chatclub\application\views\test.php:9:
array (size=0)
empty
C:\wamp64\www\chatclub\application\views\test.php:10:int -1073741515
cpp程序是,
#include<iostream>
using namespace std;
int main(){
cout<<"Hello"<<endl;
return 0;
}
给我 PHP 交互式 shell 的输出,
C:\Users\Shoyeb>php -a
Interactive shell
php > var_dump(shell_exec("D:\\c_cpp_programs\\string.exe"));
string(5) "Hello"
php > var_dump(shell_exec("D:\\c_cpp_programs\\string.exe"));
string(6) "Hello
" <----- this output is with <<endl
php > var_dump(shell_exec("D:\\c_cpp_programs\\string.exe"));
string(5) "Hello"
php >
【问题讨论】:
-
只需查阅手册,其中包含每个函数的示例。这也会让你尝试
proc_open()。至于exec(),手册清楚地表明每行尾随空格未被捕获。