从php获取matlab独立应用程序输出

时间:2017-08-30 10:17:10

标签: php matlab cmd exe

我已经借助deploytool将我的.m文件转换为独立的应用程序。

现在,我想运行我的应用程序并使用PHP获取输出。 我可以在cmd上运行我的应用程序。它将返回输出并打印。 但我无法从PHP获得输出。

这是我的独立应用程序的主文件:

function [onsets,pitch,endpoint] =  matxtwavtomidi( input_args )

input=strsplit(input_args);
[s wavFs] = audioread(input{1});
[onsets,pitch,endpoint]=txtwavtomidi(s);

end

这是我从cmd获得的结果:

C:\Users\user> START /WAIT D:/java/matlab/matxtwavtomidi.exe D:/song.wav

onsets =
    1.7183
    1.7183
    2.3220
    2.3220

pitch =
    60
    72
    62
    74

endpoint =
    1.8576
    1.9040
    3.0650
    2.4149

这是我的PHP:

<?php
$stringcmd= "START /WAIT D:/java/matlab/matxtwavtomidi.exe ";
$stringwav = "D:/song.wav";

exec($stringcmd.$stringwav, $output, $return_var);

echo $stringcmd.$stringwav;
var_dump($output);
var_dump($return_var);

?>

这是php的结果:

START /WAIT D:/java/matlab/matxtwavtomidi.exe D:/song.wav
array(0) { }
int(0)

每当我在cmd上运行应用程序时,它总是会在屏幕中间显示应用程序的图标图片2秒钟然后消失。

当我运行我的PHP时,它确实显示了图标图片,所以我认为它确实运行了应用程序。 并且php_error_log和apache error_log中没有错误。

我的问题是,为什么我的PHP无法从cmd获取应用程序的输出? 以及如何解决这个问题?

(抱歉我的英语不好......)

1 个答案:

答案 0 :(得分:0)

一个好的解决方案是将数据从matlab写入.txt文件,然后从服务器端读取该文件。 希望它有所帮助