php的內建函式exec、system都可以呼叫系統命令(dos和shell命令),passthru和escapeshellcmd也可以。
使用這兩個函式就需要在php.ini中將安全模式關閉,否則為了安全期間,php是不讓呼叫系統命令的。
exec--- 執行外部程式
語法:string exec (string command [,array &output [,int &return_var]])
引數:1.command:系統命令;
2.output:陣列,被命令輸出的每一行填滿;
3.return_var:狀態,成功返回0,失敗返回1.
system--- 執行外部程式並且顯示輸出
語法:string system (string command [,int &return_var])
不同點:
exec可以把執行的結果全部返回到$output陣列裡,$return_var是執行狀態,0為成功,1為失敗;
system不需要提供$output函式,它可以直接把結果返回來並且列印出來,同意$return_var是執行的狀態碼,0為成功,1為失敗。
示例:
陣列$output列印的結果:
array(9)
用PHP執行shell命令
php作為一種伺服器端的指令碼語言,象編寫簡單,或者是複雜的動態網頁這樣 的任務,它完全能夠勝任。但事情不總是如此,有時為了實現某個功能,必須借助於作業系統的外部程式 或者稱之為命令 這樣可以做到事半功倍。那麼,是否可以在php指令碼中呼叫外部命令呢?如果能,如何去做呢?有些什麼方面的顧慮呢?相信你...
PHP執行linux系統命令
本文是第一篇,講述如何在php中執行系統命令從而實現一些特殊的目的,比如監控伺服器負載,重啟mysql 更新svn 重啟apache等。首先先要給大家介紹php執行linux系統命令的幾個基本函式。我曾經很長一段時間都分不清下面幾個函式的具體用法區別。system函式 說明 執行外部程式並顯示輸出資...
php 執行系統命令函式
目錄 命令注入 system 函式 passthru 函式 exec shell exec 函式 反引號 popen 函式 pcntl exec 函式 命令注入 command injection 對一些函式的引數沒有做過濾或過濾不嚴導致的,可以執行系統或者應用指令 cmd命令或者bash命令 的一...