Вывод MATLAB в код PHP
Я хочу передать вывод 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? Спасибо!
2 ответа
Вы должны скорее использовать exec
, которые возвращают стандартный вывод, а не код выхода, как passthru
,
отобразить вывод в коде Matlab:
function x = returnX()
x = 100;
display(x);
end
использование exec
в коде php:
<?php
$command = "matlab -nojvm -nodesktop -nodisplay -r \"x = returnX();\"";
$output=exec($command);
echo($output)
?>
Согласно документации:
Если присутствует аргумент return_var, здесь будет указан статус возврата команды Unix.
Вы echo
возвращаемое значение из команды Matlab, а не стандартный вывод. Поскольку команда выполнена правильно, возвращается 0. passthru()
отправит содержимое со стандартного вывода "без каких-либо помех" клиенту.
Также убедитесь, что ваш хостинг-провайдер позволяет вам делать системные вызовы из скрипта PHP. Многие хосты отключают выполнение команд на стороне сервера по соображениям безопасности. Проверьте поддержку безопасного режима и disabled_functions
в вашем php.ini
,