亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP中system,exec,passthru函數用法

2024-09-04 11:48:16
字體:
來源:轉載
供稿:網友

本文章來給各位同學介紹關于在php中system,exec,passthru函數的一些使用方法,各位同學不防進入參考.

php提供了system(),exec(),passthru()這幾個函數來調用外部的命令.

他們的區別:

system() 輸出并返回最后一行shell結果,exec()不輸出結果,返回最后一行shell結果,所有結果可以保存到一個返回的數組里面.passthru()只調用命令,把命令的運行結果原樣地直接輸出到標準輸出設備上.

相同點:都可以獲得命令執行的狀態碼

  1. ?ystem()、exec()、shell_exec() 官方文件?明如下:  
  2. system — Execute an external program and display the output 
  3. string system ( string $command [, int &$return_var ] ) 
  4. exec — Execute an external program 
  5. string exec ( string $command [, array &$output [, int &$return_var ]] ) 
  6. shell_exec — Execute command via shell and return the complete output as a string 
  7. string shell_exec ( string $cmd ) 
  8. ystem()、exec()、shell_exec() 官方文件說明如下: 
  9. system — Execute an external program and display the output 
  10. string system ( string $command [, int &$return_var ] ) 
  11. exec — Execute an external program 
  12. string exec ( string $command [, array &$output [, int &$return_var ]] ) 
  13. shell_exec — Execute command via shell and return the complete output as a string 
  14. string shell_exec ( string $cmd ) 

一般系統會有兩種輸出,一種是系統狀態(return code),一種是輸出文字(output string),這三個 Function 主要就是這些回傳的差異.

system()

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

system() 會將輸出內容直接印出,所以若於網頁,會將所有回傳內容都顯示於頁面上.

$last_line: 只能取得最后一行的內容

$return_var: 取得系統狀態回傳碼

exec()

exec('ls', $output, $return_var);

$output: 回傳內容都會存於此變數中(儲存成陣列), 不會直接秀在頁面上.

$return_var: 取得系統狀態回傳碼

shell_exec()

$output = shell_exec('ls');

$output: 回傳內容都會存於此變數中(儲存成純文字內容),不會直接秀在頁面上在PHP中調用外部命令,可以用如下三種方法來實現:

1)用PHP提供的專門函數

PHP提供共了3個專門的執行外部命令的函數:system(),exec(),passthru().

system()

原型:string system (string command [, int return_var])

system()函數很其它語言中的差不多,它執行給定的命令,輸出和返回結果.第二個參數是可選的,用來得到命令執行后的狀態碼.

返回結果

        成功返回0,  
        失?。畈淮嬖诘仍颍?  返回   非0值

例子:system("/usr/local/bin/webalizer/webalizer");

exec()

原型:string exec (string command [, string array [, int return_var]])

exec()函數與system()類似,也執行給定的命令,但不輸出結果,而是返回結果的最后一行.雖然它只返回命令結果的最后一行,但用第二個參數array 可以得到完整的結果,方法是把結果逐行追加到array的結尾處.所以如果array不是空的,在調用之前最好用unset()最它清掉.只有指定了第二 個參數時,才可以用第三個參數,用來取得命令執行的狀態碼.

實例代碼如下:

  1. exec("/bin/ls -l"); 
  2. exec("/bin/ls -l"$res); 
  3. exec("/bin/ls -l"$res$rc); 
  4. passthru() 

原型:void passthru (string command [, int return_var])

passthru()只調用命令,不返回任何結果,但把命令的運行結果原樣地直接輸出到標準輸出設備上.所以passthru()函數經常用來調用象pbmplus(Unix下的一個處理圖片的工具,輸出二進制的原始圖片的流)這樣的程序.同樣它也可以得到命令執行的狀態碼.

例子:

  1. header("Content-type: image/gif"); 
  2. passthru("./ppmtogif hunte.ppm"); 

2)用popen()函數打開進程

上面的方法只能簡單地執行命令,卻不能與命令交互.但有些時候必須向命令輸入一些東西,如在增加Linux的系統用戶時,要調用su來把當前用戶換到 root才行,而su命令必須要在命令行上輸入root的密碼.這種情況下,用上面提到的方法顯然是不行的.

popen ()函數打開一個進程管道來執行給定的命令,返回一個文件句柄.既然返回的是一個文件句柄,那么就可以對它讀和寫了.在PHP3中,對這種句柄只能做單一的操作模式,要么寫,要么讀;從PHP4開始,可以同時讀和寫了.除非這個句柄是以一種模式(讀或寫)打開的,否則必須調用pclose()函數來關閉它.

例子1:

  1. $fp=popen("/bin/ls -l""r"); 

例子2:

/* PHP中如何增加一個系統用戶
下面是一段例程,增加一個名字為james的用戶,
root密碼是 verygood。僅供參考

實例代碼如下:

  1. */ 
  2. $sucommand = "su --login root --command"
  3. $useradd = "useradd "
  4. $rootpasswd = "verygood"
  5. $user = "james"
  6. $user_add = sprintf("%s "%s %s"",$sucommand,$useradd,$user); 
  7. $fp = @popen($user_add,"w"); 
  8. @fputs($fp,$rootpasswd); 
  9. @pclose($fp); 
  10. ?> 

3)用反撇號(`,也就是鍵盤上ESC鍵下面的那個,和~在同一個上面)

這個方法以前沒有歸入PHP的文檔,是作為一個秘技存在的.方法很簡單,用兩個反撇號把要執行的命令括起來作為一個表達式,這個表達式的值就是命令執行的結果.如:

  1. $res='/bin/ls -l'
  2. echo ' 
  3. '.$res.' 
  4. '; 

這個腳本的輸出就象:

  1. hunte.gif 
  2. hunte.ppm 
  3. jpg.htm 
  4. jpg.jpg 
  5. passthru.php 

范例程式

由此范例執行一次就比較容易理解. (請建立一個目錄,隨便放兩個檔案,再將此程式放置執行)

實例代碼如下:

  1. echo "nsystem"
  2. $last_line = system('ls'$return_var); 
  3. echo "nreturn_var:"
  4. print_r($return_var); 
  5. echo "nlast_line:"
  6. print_r($last_line); 
  7. echo "nnexec"
  8. exec('ls'$output$return_var); 
  9. echo "nreturn_var:"
  10. print_r($return_var); 
  11. echo "noutput:"
  12. print_r($output); 
  13. echo "nnshell_exec"
  14. $output = shell_exec('ls'); 
  15. echo "noutput:"
  16. print_r($output); 
  17. ?> 
  18. */ 
  19.  
  20. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲系列中文字幕| 久久久免费高清电视剧观看| 国产视频综合在线| 欧美日韩一区二区在线| 亚洲天堂视频在线观看| 欧美激情aaaa| 久久久在线免费观看| 一区二区三区久久精品| 1769国产精品| 日韩视频免费中文字幕| 亚洲欧洲视频在线| 精品久久久久久中文字幕一区奶水| 欧美日韩国产精品一区二区不卡中文| 日韩av色在线| 亚洲黄色免费三级| 国产成人精品在线视频| 日韩电影在线观看永久视频免费网站| 欧美国产精品日韩| 国产精品老女人视频| 97国产精品久久| 欧美性20hd另类| 热99久久精品| 亚洲精品资源在线| 亚洲欧美国产制服动漫| 亚洲女人初尝黑人巨大| 亚洲精品色婷婷福利天堂| 欧美大片免费观看在线观看网站推荐| 国产suv精品一区二区三区88区| 日韩欧美精品在线观看| 欧美交受高潮1| 国产精品久久久久久久天堂| 欧美高清在线视频观看不卡| 亚洲一级黄色av| 精品国产31久久久久久| 欧美日韩视频在线| 国产精品影院在线观看| 欧美色视频日本高清在线观看| 蜜臀久久99精品久久久久久宅男| 国产精品视频区| 538国产精品视频一区二区| 久久久久久com| 日韩欧美在线网址| 欧美一级黄色网| 亚洲香蕉成视频在线观看| 成人有码视频在线播放| 91精品综合视频| 国产综合福利在线| 国产69精品久久久久9999| 成人久久久久久| 成人在线播放av| 日韩成人激情视频| 午夜精品一区二区三区在线| 久久精品视频导航| 亚洲欧美国产高清va在线播| 欧美午夜宅男影院在线观看| 亚洲一级片在线看| 欧美日韩国产丝袜美女| 中文字幕在线成人| 91香蕉亚洲精品| 国产精品海角社区在线观看| 色偷偷88888欧美精品久久久| 欧美一级bbbbb性bbbb喷潮片| 亚洲精品久久7777777| 国产精品情侣自拍| 91福利视频网| 久久免费精品视频| 亚洲欧美第一页| 久久亚洲私人国产精品va| 久久视频在线看| 91av在线视频观看| 欧美在线观看日本一区| 亚洲人精选亚洲人成在线| 亚洲人精选亚洲人成在线| 不卡毛片在线看| 最近日韩中文字幕中文| 国产成人激情视频| 日韩精品免费一线在线观看| 自拍亚洲一区欧美另类| 日韩欧美在线免费观看| 欧美成人一二三| 国产乱肥老妇国产一区二| 欧美精品国产精品日韩精品| 国产精品扒开腿做爽爽爽视频| 国产亚洲欧美日韩美女| 狠狠色狠狠色综合日日小说| 国产精品视频区1| 97精品国产aⅴ7777| 午夜美女久久久久爽久久| 国产成人自拍视频在线观看| 国产乱肥老妇国产一区二| 中日韩美女免费视频网址在线观看| 色噜噜狠狠色综合网图区| 一区二区三区日韩在线| 欧美性在线观看| 欧美整片在线观看| 主播福利视频一区| 国产精品久久久久久av下载红粉| 久久91亚洲人成电影网站| 欧美电影免费观看网站| 国产国语videosex另类| 日韩在线视频中文字幕| 国产网站欧美日韩免费精品在线观看| 亚洲专区国产精品| 亚洲国模精品私拍| 欧美成人手机在线| 亚洲成在人线av| 欧美日韩亚洲一区二区三区| 日韩在线不卡视频| 欧美中文在线免费| 亚洲一区二区三区777| 欧美日韩国产成人在线观看| 国产精品va在线播放我和闺蜜| 狠狠躁18三区二区一区| 精品视频久久久| 亚洲精品视频在线观看视频| 亚洲国产欧美一区二区三区同亚洲| 欧美激情精品久久久久久久变态| 成人亚洲欧美一区二区三区| 7m第一福利500精品视频| 国产成人精品免费久久久久| 日韩中文字幕在线免费观看| 欧美最近摘花xxxx摘花| 国产亚洲一区二区在线| 欧美午夜片欧美片在线观看| 精品一区二区三区四区在线| 国产精品久久久久国产a级| 亚洲第一国产精品| 国产一区二区三区视频| 亚洲视频国产视频| 亚洲自拍偷拍第一页| 91天堂在线观看| 亚洲一区二区中文字幕| 欧美一性一乱一交一视频| 国产精品羞羞答答| 91av在线网站| 国产一区二区黑人欧美xxxx| 久久久久久久国产精品| 日韩国产欧美精品一区二区三区| 欧美日韩国产丝袜美女| 久久久久久国产精品三级玉女聊斋| 亚洲国产欧美日韩精品| 尤物tv国产一区| 欧美亚洲一级片| 亚洲欧美国产精品va在线观看| 中文字幕欧美日韩va免费视频| 国产精品一区二区电影| 91精品视频观看| 91久久国产综合久久91精品网站| 久久久精品免费视频| 亚洲美女喷白浆| 啪一啪鲁一鲁2019在线视频| 欧美大片欧美激情性色a∨久久| 国语自产精品视频在线看一大j8| 国产日韩欧美91| 成人网在线视频| 亚洲无限乱码一二三四麻| 91精品国产91久久久久久最新| 日av在线播放中文不卡| 欧美激情2020午夜免费观看| 亚洲精品国产品国语在线| 欧美激情三级免费| 国产91精品黑色丝袜高跟鞋| 88国产精品欧美一区二区三区| 国产一区av在线|