我想将MATLAB输出传递给我的PHP代码。
我的matlab代码,我有:
function x = returnX()
x = 100;
end
和我的PHP代码:
<?php
$command = "matlab -nojvm -nodesktop -nodisplay -r "x = returnX();"";
passthru($command, $output);
echo($output)
?>
但是,这是打印0,而不是100。
当我在CMD中键入命令时,它显示100。但是,当我尝试使用PHP代码时,它不起作用。谁能帮助我如何将MATLAB的输出值设置为PHP变量?谢谢!
您应该宁愿使用返回标准输出的exec
,而不是像passthru
一样退出代码。
在MATLAB代码中显示输出:
function x = returnX()
x = 100;
display(x);
end
在PHP代码中使用exec
:
<?php
$command = "matlab -nojvm -nodesktop -nodisplay -r "x = returnX();"";
$output=exec($command);
echo($output)
?>
根据文档:
如果存在return_var参数,则UNIX的返回状态 命令将放在这里。
您是从MATLAB命令而不是标准输出的echo
返回值。由于命令正确执行,返回0。passthru()
将从标准输出"无需任何干扰"发送到客户端。
另外,请确保您的托管提供商允许您在PHP脚本中进行系统调用。许多主机出于安全原因禁用执行服务器端命令。在您的php.ini
中查看安全模式和disabled_functions
的支持。