0

MATLAB 出力を自分の php コードに渡したいです。

私のMATLABコード、私は持っています:

function x = returnX()
    x = 100;
end


そして私のPHPコード:

<?php
     $command = "matlab -nojvm -nodesktop -nodisplay -r \"x = returnX();\"";
     passthru($command, $output);
     echo($output)
?>

ただし、これは 100 ではなく 0 を出力
します。cmd にコマンドを入力すると、100 が表示されます。しかし、PHP コードで試してみると、機能しません。MATLAB の出力値を php 変数に設定する方法を教えてもらえますか? ありがとう!

4

2 に答える 2

2

execのような終了コードではなく、標準出力を返す を使用する必要がありますpassthru

出力を matlab コードで表示します。

function x = returnX()
    x = 100;
    display(x);
end

execPHP コードで使用します。

<?php
     $command = "matlab -nojvm -nodesktop -nodisplay -r \"x = returnX();\"";
     $output=exec($command);
     echo($output)
?>
于 2012-10-28T04:32:59.697 に答える
1

ドキュメントによると:

return_var 引数が存在する場合、Unix コマンドの戻りステータスがここに配置されます。

標準出力ではechoなく、Matlab コマンドからの戻り値を取得しています。コマンドが正しく実行されたため、0 が返されます。 passthru()標準出力からコンテンツを「干渉なしに」クライアントに送信します。

また、ホスティング プロバイダーが PHP スクリプト内からのシステム コールを許可していることを確認してください。多くのホストは、セキュリティ上の理由からサーバー側コマンドの実行を無効にしています。セーフ モードのサポートdisabled_functionsphp.ini.

于 2012-10-28T04:32:38.167 に答える