首頁 >後端開發 >PHP問題 >一起看看PHP常用指令執行函數

一起看看PHP常用指令執行函數

WBOY
WBOY轉載
2022-05-20 11:56:123697瀏覽

這篇文章為大家帶來了關於PHP的相關知識,其中主要介紹了關於PHP中一些常見的命令執行函數,利用命令執行函數執行作業系統命令,下面一起來看一下,希望對大家有幫助。

一起看看PHP常用指令執行函數

推薦學習:《PHP影片教學

 PHP指令執行函數常配合程式碼執行漏洞使用, 利用指令執行函數執行作業系統指令, 從而發動攻擊, 接下來就簡單分享幾個常用的PHP指令執行函數

# system();

system()函數可以執行系統指令, 並將指令執行的結果直接輸出到介面, 使用時直接在參數中傳入需要執行的指令即可

system('ls');

exec( );

exec()函數可以執行系統指令, 但它不會直接輸出結果, 而是將執行的結果儲存到陣列中

exec( 'ls' , $result ) ;    
        參數1: 字串型別,需要執行的系統指令
        參數2: 陣列型別,儲存系統指令的執行結果
print_r($result);  

#shell_exec();

shell_exec()函數可以執行系統指令, 但它不會直接輸出執行的結果, 而是傳回一個字串類型的變數來存儲系統指令的執行結果, 在參數中傳遞需要執行的系統指令即可

echo shell_exec('ls');

#passthru();

passthru()函數可以執行系統命令, 並將執行結果輸出到頁面中, 與system()函數不同的是, 它支援二進位的資料, 更多的用於文件, 圖片等操作, 使用時直接在參數中傳遞字串類型的系統命令即可

passthru('ls');

popen(); 

popen()函數可以執行系統指令, 但不會輸出執行的結果, 而是回傳一個資源類型的變數用來儲存系統指令的執行結果, 需要配合fread()函數來讀取指令的執行結果

$result = popen( 'ls' , 'r' );

        參數1 :字串型別,需要執行的指令

        參數2:字串型別,模式
        傳回值:資源型別,指令執行的結果
echo fread( $result , 100 );
 :資源型別,需要讀取的檔案指標
        參數2:int型別,讀取n個位元組
        傳回值:字串型別,讀取的檔案內容

echo fread(popen('ls','r'),100);

##反引號``

反引號可以執行系統指令, 但它不會輸出結果, 而是傳回一個字串類型的變數, 用來儲存系統指令的執行結果, 可單獨使用, 也可配合其他指令執行函數使用來繞過參數中的篩選條件

echo `ls`;

#推薦學習:《

PHP影片教學

以上是一起看看PHP常用指令執行函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除