我已经借助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获取应用程序的输出? 以及如何解决这个问题?
(抱歉我的英语不好......)
答案 0 :(得分:0)
一个好的解决方案是将数据从matlab写入.txt文件,然后从服务器端读取该文件。 希望它有所帮助