2015-07-22 70 views
1

执行一个倍频程的文件我有一个倍频程文件sr.m如何使用PHP

sqrt(3^2 + 4^2) 

我必须执行使用浏览器PHP和显示输出文件。 sr.m文件位于Desktopoctavepgm文件夹中。

PHP代码

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

这给INT 1作为输出。

我怎样才能让这个working..please帮助我..

预期输出为5

+0

@WesFoster,使用'exec'给出'array(size = 0) empty' – next2u

回答

0

有我解释进一步下跌的几个问题,但这里是你如何做到这一点:

$ 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手册说明:

的中继()函数是类似于EXEC在于它 执行命令()函数。当Unix命令的输出是 需要直接传递回浏览器的二进制数据时,应该使用该函数来代替system()或exec()或 system()。

问题2:

如果只想从八度的结果,你应该使用printf()否则你得到一个变量的显示,包括ans =部分。另外,使用printf()您可以更好地控制输出的格式。

问题3:

对于这样简单的情况下,利用倍频的--eval选项。

+0

您提供的代码是PHP? – next2u

+0

现在我完全困惑。你可以提供代码请..我的要求是执行一个八度文件使用PHP – next2u

+0

@ next2u这是PHP代码。这是一个在php控制台中的会话。 – carandraug