Вывод 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,

Другие вопросы по тегам