2012-08-23 131 views
0

我使用test.php的這段代碼:顯示EXEC返回值

<?php 
    $con=mysql_connect('localhost','username','password'); 
    exec("awk commend",$out); 
    foreach($out as $line) 
    { 
     echo $line; 
    } 
     mysql_close($con); 
    ?> 

當我使用php /var/www/html/test.php給它執行的結果。 我能做些什麼來在瀏覽器中顯示結果?

+0

當我寫http://localhost/test.php它不顯示任何東西! –

+0

首先,請不要使用舊的'mysql_'函數(即使您似乎沒有真正使用它們)。他們很快就會被棄用,如果你正在學習,你應該學習'mysqli'或'PDO'。 – kapa

+1

您在第1行有錯字錯誤('<?[SPACE] php')是否在您的代碼中? – Touki

回答

0

awk程序的路徑必須無效。檢查file exists

+0

不,我試過了,它是正確的... –

0

如果awk失敗,它可能會寫入stderr而不是stdout,而您只打印stdout。

有嘗試,而不是你現在有什麼樣的:

exec("awk commend 2>&1",$out); 

這將stderr重定向到stdout,所以你應該能夠看到錯誤消息。

+0

聰明,我認爲該文件不存在,但我們會看到... –

+0

在awk命令中有任何錯誤,如果使用php命令來運行文件它給了我正確的答案。 –

+0

@ kinana.yasin即使它工作的命令行,這並不意味着它將始終工作,當你通過網絡服務器運行它。當你用命令行運行它時,stdout和stderr默認顯示,但對於web服務器,你只能看到當前代碼的stdout。請測試。 – eis