Intereting Posts

Как выполнить файл Octave с помощью php

У меня есть файл 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.

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

 $ 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 = part. Кроме того, с помощью printf() вы можете лучше управлять форматом вывода.

Проблема № 3:

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