2015-07-22 71 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