PHP為執行外部命令提供了函數,其中包括shell_exec(),exec(),passthru(),system().
1.shell_exec()
命令列實際上僅是後撇號(`)操作符變體。返回命令執行後的輸出
例如,下面命令顯示了如何使用反撇號在目前的目錄中擷取/usr檔案下的的檔案清單。
a)基於Shell指令碼
#! /bin/sh
ls /usr
b)PHP中調用shell_exec() ,運行相同的命令
<?php<br />$lists = shell_exec('ls /usr');<br />echo $lists;<br />?>
2.passthru()
允許您運行外部程式,並在螢幕上顯示結果。
不需要使用 echo 或 return 來查看結果,它會將輸出結果直接輸出到瀏覽器(或當前終端).
您可以添加可選的參數,即儲存從外部程式返回的代碼的變數,比如表示成功的 0,這為調試提供更好的機制。
<?php<br />passthru('ls /usr | head -5',$returnval);<br />if($returnval){//$returnval>1,則表示有錯誤<br /> echo '指令碼錯誤';<br />}else{<br /> echo '目錄列出完成';<br />}<br />?>
3.exec()
exec() 命令與 shell_exec() 相似,不同之處是它返回輸出的最後一行,並且可選地用命令的完整輸出和錯誤碼填充數組。
a)運行 exec() 而不捕捉資料數組中的資料
<?php<br />$results = exec('ls /usr | head -5');<br />echo $results;<br />//僅僅輸出最後一行結果<br />?>
b)從 exec() 捕捉資料數組的結果
<?php<br />$results = exec('ls /usr | head -5',$data);<br />print_r($data);</p><p>//返回資料的數組格式<br />//格式如下:<br />//Array ( [0]=> test [1] => local/)<br />?>