php函數system詳解:
執行外部程式並顯示輸出資料。
system文法: string system(string command, int [return_var]);
system傳回值: 字串
函數種類: 作業系統與環境
system內容說明
本函數就像是 C 語中的函數 system(),用來執行指令,並輸出結果。若是 return_var 參數存在,則執行 command 之後的狀態會填入 return_var 中。同樣值得注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用 EscapeShellCmd()。若 PHP 以模組式的執行,本函數會在每一行輸出後自動更新 Web 服務器的輸出緩衝暫存區。若需要完整的返回字串,且不想經過不必要的其它中間的輸出介面,可以使用 PassThru()。
System()函數的主要功能是在系統許可權允許的情況是執行系統命令,windows系統和Linux系統都可以執行,Windows系統下可執行可執行檔(.exe、.bat等),也可執行cmd命令,Linux下用途更廣,因為Linux系統就是基於命令列的,如基本的ls、cp、rm等。例如在windows系統下有一個bat檔案,檔案內容為:
@echo off
echo 清空IE臨時檔案目錄…
del /f /s /q “%userprofile%/Local Settings/Temporary Internet Files/*.*”
del /f /s /q “%userprofile%/Local Settings/Temp/*.*”
echo 正在清除系統臨時檔案 *.tmp *._tmp *.log *.chk *.old ,請稍等…
del /f /s /q %systemdrive%/*.tmp
del /f /s /q %systemdrive%/*._mp
rem .log大部分有可能有用
rem del /f /s /q %systemdrive%/*.log
del /f /s /q %systemdrive%/*.gid
del /f /s /q %systemdrive%/*.chk
del /f /s /q %systemdrive%/*.old
echo 清空垃圾箱,備份檔案和預緩衝指令碼…
del /f /s /q %systemdrive%/recycled/*.*
del /f /s /q %windir%/*.bak
del /f /s /q %windir%/prefetch/*.*
rd /s /q %windir%/temp & md %windir%/temp
rem cooke和最近曆史還是保留吧…
rem del /f /q %userprofile%/COOKIES s/*.*
rem del /f /q %userprofile%/recent/*.*
echo 清理系統硬碟無用檔案…
%windir%/system32/sfc.exe /purgecache
echo 最佳化預讀資訊…
%windir%/system32/defrag.exe %systemdrive% -b
echo 清除系統完成!
echo. & pause
該檔案的作用是去除系統垃圾,使用system函數就可以執行它,完成清理工作,代碼如下:
<?php
system(‘cmd.bat’,$callback);
echo $callback;
?>
其中$callback變數為被執行檔案執行後的輸出資訊。
用Linux命令就可以輕鬆實現tar檔案的線上解壓工作(必須是Linux系統):
<?php
system(‘tar xvf FileName.tar’,$callback);
echo $callback;
?>
如果系統允許,可以使用system函數做更多的工作。