1.php運行linux命令
exec函數:string exec(string command, string [array], int [return_var]);
執行函數后不輸出結果,返回最后一行shell結果
要是參數 array 存在,command 會將 array 加到參數中執行,若不欲 array 被處理,可以在執行 exec() 之前呼叫 unset()。若是 return_var 跟 array 二個參數都存在,則執行 command 之后的狀態會填入 return_var 中
system函數: string system(string command, int [return_var]);
本函數就像是 C 語中的函數 system(),用來執行指令,並輸出結果。若是 return_var 參數存在,則執行 command 之后的狀態會填入 return_var 中
passthru函數:本函數類似 Exec() 用來執行 command 指令,並輸出結果。若是 return_var 參數存在,則執行 command 之后的狀態會填入 return_var 中。若輸出的資料是二進位的資料,並且需要輸出到瀏覽器中的話,使用本函數就相當合適了。例如使用 pbmplus 工具來執行指令,並返回二進位的圖形資料。可以先配置返回資料的標頭 (header) 為 Content-type: image/gif,然后呼叫 pbmplus 程序處理圖形資料,並將二進位的圖形資料直接返回瀏覽器。
相同點:都可以獲得命令執行的狀態碼
例子:exec('cd /etc');
注意:用這三個函數執行linux命令時最好用escapeshellcmd這個函數先過濾一下命令字符,防破解攻擊。
2.linux下命令行執行php
/usr/local/php/bin/php /var/www/phpinfo.php 參數php的安裝路徑下的bin目錄下面的php命令 然后后面跟php文件 再接着就是跟參數
然后在php代碼中可以通過$_SERVER['argv'][1]來獲取第一個參數,以此類推。。。。。。。。
