php exec() 未显示预期输出
php exec() not showing expected output
我正在尝试 运行 在 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 Interactive 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 >
您可以使用:
exec("D:/c_cpp_programs/string.exe", $out);
请注意 $out
将保留输出。
记住shell_exec
returns所有的输出流都是一个字符串,但是exec
returns最后一行输出。
我不是 cpp 专家,但 <<endl
可能会输出一个空字符串。我不确定。
当我以管理员权限启动 wamp 时,我终于得到了输出,
C:\wamp64\www\chatclub\application\views\test.php:2:string 'Hello
' (length=6)
Hello
C:\wamp64\www\chatclub\application\views\test.php:4:string 'Hello' (length=5)
Hello File exist
C:\wamp64\www\chatclub\application\views\test.php:9:
array (size=1)
0 => string 'Hello' (length=5)
C:\wamp64\www\chatclub\application\views\test.php:10:int 0
我正在尝试 运行 在 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 Interactive 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 >
您可以使用:
exec("D:/c_cpp_programs/string.exe", $out);
请注意 $out
将保留输出。
记住shell_exec
returns所有的输出流都是一个字符串,但是exec
returns最后一行输出。
我不是 cpp 专家,但 <<endl
可能会输出一个空字符串。我不确定。
当我以管理员权限启动 wamp 时,我终于得到了输出,
C:\wamp64\www\chatclub\application\views\test.php:2:string 'Hello
' (length=6)
Hello
C:\wamp64\www\chatclub\application\views\test.php:4:string 'Hello' (length=5)
Hello File exist
C:\wamp64\www\chatclub\application\views\test.php:9:
array (size=1)
0 => string 'Hello' (length=5)
C:\wamp64\www\chatclub\application\views\test.php:10:int 0