中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      PHP執行Linux系統命令函數的方法

      時間:2024-07-12 03:59:05 PHP 我要投稿
      • 相關推薦

      PHP執行Linux系統命令函數的方法

        PHP執行Linux系統命令的函數怎么使用?下面就讓應屆畢業生小編告訴大家PHP執行Linux系統命令函數的方法吧,希望對大家有所幫助。

        system函數

        說明:執行外部程序并顯示輸出資料。

        語法:string system(string command, int [return_var]);

        返回值: 字符串

        詳細介紹:

        本函數就像是 C 語中的函數 system(),用來執行指令,并輸出結果。若是 return_var 參數存在,則執行 command 之后的狀態會填入 return_var 中。同樣值得注意的是若需要處理用戶輸入的資料,而又要防止用戶耍花招破解系統,則可以使用 EscapeShellCmd()。若PHP 以模塊式的執行,本函數會在每一行輸出后自動更新 Web 服務器的輸出緩沖暫存區。若需要完整的返回字符串,且不想經過不必要的其它中間的輸出界面,可以使用 PassThru()。

        實例代碼:

        代碼如下:

        < ?php

        $last_line = system('ls', $retval);

        echo 'Last line of the output: ' . $last_line;

        echo '

        Return value: ' . $retval;

        ?>

        exec函數

        說明:執行外部程序。

        語法:string exec(string command, string [array], int [return_var]);

        返回值: 字符串

        詳細介紹:

        本函數執行輸入 command 的外部程序或外部指令。它的返回字符串只是外部程序執行后返回的最后一行;若需要完整的返回字符串,可以使用 PassThru() 這個函數。

        要是參數 array 存在,command 會將 array 加到參數中執行,若不欲 array 被處理,可以在執行 exec() 之前呼叫 unset()。若是 return_var 跟 array 二個參數都存在,則執行 command 之后的狀態會填入 return_var 中。

        值得注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用 EscapeShellCmd()。

        實例代碼:

        代碼如下:

        < ?php

        echo exec('whoami');

        ?>

        popen函數

        說明:打開文件。

        語法:int popen(string command, string mode);

        返回值: 整數

        詳細介紹:

        本函數執行指令開檔,而該文件是用管道方式處理的文件。用本函數打開的文件只能是單向的 (只能讀或只能寫),而且一定要用 pclose() 關閉。在文件操作上可使用 fgets()、fgetss() 與 fputs()。若是開檔發生錯誤,返回 false 值。

        實例代碼:

        代碼如下:

        < ?

        $fp = popen("/bin/ls","r" );

        ?>

        PHP監控linux服務器負載

        在實際項目的應用中,我們由于各種條件的現實,利用PHP來實現服務器負載監控將是一種更為靈活的方式。

        由于Web Server以及PHP的實現方式所限,我們在現實環境中很難利用PHP去調用一些Linux中需要root權限才能執行的程序,對此,我從網上找到另外一種方式來繞開這個限制。首先先寫個c程序中轉調用系統命令,然后用PHP去執行此c程序。

        c程序

        首先寫個c文件,比如/usr/local/ismole/w.c

        代碼如下:

        #include

        #include

        #include

        #include

        int main()

        {

        uid_t uid ,euid;

        //note 獲得當前的uid

        uid = getuid();

        //note 獲得當前euid

        euid = geteuid();

        //note 交換這兩個id

        if(setreuid(euid, uid))

        perror("setreuid");

        //note 執行將要執行linux系統命令

        system("/usr/bin/w");

        return0;

        }

        編譯該文件gcc -o w -Wall w.c,這時會在當前目錄下生成程序w。改變此程序的屬主chmod u+s ./w。

        PHP執行

        文件內容如下,放在web目錄下,訪問就會輸出當前的服務器負載情況。

        代碼如下:

        /*

        More & Original PHP Framwork

        Copyright (c) 2007 - 2008 IsMole Inc.

        $Id: serverMonitor.php 408 2008-12-02 08:07:40Z kimi $

        */

        //note key的驗證過程

        if($key != $authkey) {

        // exit('key error);

        }

        $last_line = exec('/usr/local/ismole/w', $retval);

        $returnArray = explode("load average: ", $retval[0]);

        $returnString = $returnArray[1];

        echo $returnString;


      【PHP執行Linux系統命令函數的方法】相關文章:

      php外部執行命令函數10-27

      Linux文件系統操作命令大全07-03

      Linux系統專家必學的20個命令01-23

      Linux系統守護進程的啟動方法12-15

      Linux系統死機解決方法01-22

      關于dd命令備份Linux系統的6個例子01-06

      linux常用基本命令(文件處理命令)11-29

      PHP的壓縮函數06-21

      Linux硬件信息命令大全10-10

      Linux中常用操作命令10-17

      主站蜘蛛池模板: 看黄色亚洲看黄色亚洲| 大悟县| 91久久精品美女高潮不断| 青春草在线视频精品| 人妻猛烈进入中文字幕| 精品人妻av一区二区三区不卡| 欧美片欧美日韩国产综合片| 国产三级精品三级男人的天堂,| 亚洲一区二区三区四区三级视频| 人妻少妇精品视中文字幕国语| 国产精品av在线免费| 国产一级黄色av影片| 林芝县| 91在线无码精品秘 入口九色十| 456亚洲人成在线播放网站| 国产黄片小视频在线观看| 乌拉特前旗| 伊宁市| 亚洲中文字幕有码av| 最新永久无码AV网址亚洲| 伊人影院在线观看不卡| 亚洲无人区码一码二码三码区别| 加勒比在线一区二区三区| 蕉岭县| 凯里市| 阜康市| 日本人妻高清一区二区三区| 国模少妇无码一区二区三区| 精品亚洲女同一区二区| 久久精品国产屋| 蜜桃视频色版在线观看| 人妻av天堂一区二区| 久久国产精品免费一区二区| 国产亚洲日韩AV在线播放不卡| 久色精品国产亚洲av麻豆一| 日韩人妻一级av一区二区| 托克托县| 亚洲中文字幕av天堂| 中文字幕无码免费久久| 亚洲无码毛片免费视频在线观看| 亚洲无码图|