Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP检索外部程序数据_Php - Fatal编程技术网

PHP检索外部程序数据

PHP检索外部程序数据,php,Php,我想做的是让一个PHP脚本运行一个程序,让它以某种方式从中检索数据。例如,程序将解析文件中的数据,并返回数据供PHP脚本显示 到目前为止,我知道调用exec(“Program.exe”)但是我是否必须让它创建一个包含数据的文件,然后让PHP脚本调用fopen并以这种方式获得它?有更好的方法吗?感谢根据,您可以将数组作为另一个参数传递给它,该数组将填充程序的输出行 exec("Program.exe", $results); // $results is now an array where ea

我想做的是让一个PHP脚本运行一个程序,让它以某种方式从中检索数据。例如,程序将解析文件中的数据,并返回数据供PHP脚本显示

到目前为止,我知道调用
exec(“Program.exe”)
但是我是否必须让它创建一个包含数据的文件,然后让PHP脚本调用fopen并以这种方式获得它?有更好的方法吗?感谢

根据,您可以将数组作为另一个参数传递给它,该数组将填充程序的输出行

exec("Program.exe", $results);
// $results is now an array where each element is a line of output
根据,您可以将数组作为另一个参数传递给它,该数组将由程序的输出行填充

exec("Program.exe", $results);
// $results is now an array where each element is a line of output

如果您只需要命令的输出和/或可以在命令行上将输入传递给外部命令,那么exec()或passthru()就是最好的选择


如果您需要能够向外部命令提供比命令行更长的数据量,则需要通过STDIN将其传入。我建议使用proc_open(),它允许您调用外部命令,但也可以通过标准输入/输出流与之通信。如果您只需要命令的输出和/或可以在命令行上将输入传递给外部命令,那么exec()或passthru()就是最好的选择


如果您需要能够向外部命令提供比命令行更长的数据量,则需要通过STDIN将其传入。我建议使用proc_open(),它允许您调用外部命令,但也可以通过标准输入/输出流与之通信。您可以在

中看到它的一个示例用法,程序需要调用哪些函数才能将数据转换为$results?我让它在C中调用printf(“Test”),但在PHP中我调用了
echo&results
,它只显示“Array”。你不能
echo
数组-你需要使用类似
print\r()
的东西来显示数组中的项目。程序需要调用什么函数才能将数据放入$results?我让它在C中调用printf(“Test”),但在PHP中我调用了
echo&results
,它只显示“Array”。你不能
echo
数组-你需要使用类似
print\r()
的东西来显示数组中的项目。