Windows 8 — Как выполнить файл Octave с помощью переполнения стека

У меня есть файл Octave sr.m

sqrt(3^2 + 4^2)

Я должен выполнить этот файл, используя PHP и отображать вывод в браузере. sr.m файл находится в octavepgm папка в Desktop,

мой PHP код

$cmd = "octave3.6.4 -qf C:\\Users\\deepu_000\\Desktop\\octavepgm\\sr.m";
$ex = passthru($cmd, $output);
var_dump($output);

Это дает int 1 в качестве вывода.

Как я могу заставить это работать .. пожалуйста, помогите мне ..

Ожидаемый результат 5.

1

Решение

Есть несколько вопросов, которые я объясню ниже, но вот как вы это делаете:

$ php -a
Interactive mode enabled

php > $cmd = "octave -qf --eval 'printf (\"%f\", sqrt (3^2 + 4^2));'";
php > $output = exec ($cmd);
php > var_dump ($output);
string(8) "5.000000"

Выпуск № 1:

Ты используешь passthru() но если вы хотите захватить выход октавы, вы должны использовать exec(), Это объясняется в руководстве по PHP (выделение добавлено):

Функция passthru () похожа на функцию exec () в том, что она
выполняет команду. Эта функция должна использоваться вместо exec () или
system (), когда вывод команды Unix представляет собой двоичные данные, которые
необходимо передать прямо обратно в браузер.

Выпуск № 2:

Если вы хотите получить результат только от Octave, вы должны использовать printf() в противном случае вы получите отображение переменной, включая ans = часть. Кроме того, с printf() Вы можете лучше контролировать формат вывода.

Выпуск № 3:

Для таких простых случаев используйте Octave’s --eval вариант.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]