熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

PHP執行linux系統命令

2013-11-15 12:28:25  來源: PHP編程 

  首先先要給大家介紹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 <hr />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" );
?> 
 
 
From:http://tw.wingwit.com/Article/program/PHP/201311/21017.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.