PHP中exec函數和shell_exec函數的區別

exec只能獲取最後一行數據php

exec()執行外部命令失敗,但沒有任何錯誤信息。shell

注:exec執行某命令在命令行下沒有問題,可是在php中就出錯。這個問題99.99%與權限有關,可是exec執行的命令不會返回錯誤。一個技巧就是使用管道命令,假設你的exec調用以下:數組

exec('convert a.jpg b.jpg 2>&1', $output, $return_val);    
print_r($output);  

使用 2>&1, 命令就會輸出shell執行時的錯誤到$output變量, 輸出該變量便可分析。
備註: exec有3個參數,第一個是要執行的命令,第二個是參數是一個數組,數組的值是由第一個命令執行後生成的,第三個參數執行的狀態,0表示成功,其餘都表示失敗。函數

在php裏面一共有三個函數能夠用來執行外部命令system,exec,passthru。spa

參考網址:http://blog.csdn.net/stpeace/article/details/50762905.net

 

shell_exec 則能夠獲取所有數據命令行

相關文章
相關標籤/搜索