這兩個函數都是執行Linux命令函數,不同的是獲取返回結果不一樣,exec只能獲取最后一行數據,shell_execu則可以獲取全部數據。
php中的exec和shell_exec兩個函數都可以用來執行linux命令,但它們在使用方式以及結果的返回上,差別還是比較大的。
exec
調用方式:
exec($cmd.' 2>&1',$output,$status);
$cmd:shell腳本
2>&1:表示shell腳本執行過程中的錯誤信息會被輸出
$output:數組格式,用於存儲2>&1輸出的錯誤信息
$status:shell腳本的執行狀態,0表示成功,其他都表示失敗
shell_exec
調用方式:
$result = shell_exec($cmd);
$cmd:shell腳本
$result:shell腳本的執行結果
使用建議
如果你的shell腳本返回的結果是一個列表,建議使用shell_exec,相應的,如果它返回的只是某種狀態,建議用exec