程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP執行Linux命令常用的6個函數

PHP執行Linux命令常用的6個函數

編輯:PHP綜合

很多人都知道有二個函數可以執行Linux命令,一個是exec,一個是shell_exec。其實有很多的,本文結合手冊內容,介紹以下6個函數能執行Linux下的命令。

  1,exec函數

  1. <?php     
  2. $test = "ls /tmp/test";   //ls是Linux下的查目錄,文件的命令     
  3. exec($test,$array);       //執行命令     
  4. print_r($array);     
  5. ?>   

  返回結果如下:

 

  1. [root@krlcgcms01 shell]# php ./exec.PHP     
  2. Array     
  3. (     
  4.  [0] => 1001.log     
  5.  [1] => 10.log     
  6.  [2] => 10.tar.gz     
  7.  [3] => aaa.tar.gz     
  8.  [4] => mytest     
  9.  [5] => test1101     
  10.  [6] => test1102     
  11.  [7] => weblog_2010_09     
  12. )  

 


2,system函數

  1. <?PHP     
  2. $test = "ls /tmp/test";     
  3. $last = system($test);     
  4. print "last: $last\n";     
  5. ?>   

  返回結果:

  1. [root@krlcgcms01 shell]# php system.PHP     
  2. 1001.log     
  3. 10.log     
  4. 10.tar.gz     
  5. aaa.tar.gz     
  6. mytest     
  7. test1101     
  8. test1102     
  9. weblog_2010_09     
  10. last:weblog_2010_09   

 


3,passthru函數

  1. <?PHP     
  2. $test = "ls /tmp/test";     
  3. passthru($test);     
  4. ?>  
4,popen函數
  1. <?PHP     
  2. $test = "ls /tmp/test";     
  3. $fp = popen($test,"r");  //popen打一個進程通道     
  4.     
  5. while (!feof($fp)) {      //從通道裡面取得東西     
  6.  $out = fgets($fp, 4096);     
  7.  echo  $out;         //打印出來     
  8. }     
  9. pclose($fp);     
  10. ?>  
5,proc_open函數
  1. <?PHP     
  2. $test = "ls /tmp/test";     
  3. $arrayarray =   array(     
  4.  array("pipe","r"),   //標准輸入     
  5.  array("pipe","w"),   //標准輸出內容     
  6.  array("pipe","w")    //標准輸出錯誤     
  7.  );     
  8.     
  9. $fp = proc_open($test,$array,$pipes);   //打開一個進程通道     
  10. echo stream_get_contents($pipes[1]);    //為什麼是$pipes[1],因為1是輸出內容     
  11. proc_close($fp);     
  12. ?>   
6,shell_exec函數
  1. <?PHP     
  2. $test = "ls /tmp/test";     
  3. $out = shell_exec($test);     
  4. echo $out;     
  5. ?> 

  popen,passthru,proc_open,shell_exec的返回結果如下:

 

  1. [root@krlcgcms01 shell]# php test.PHP     
  2. 1001.log     
  3. 10.log     
  4. 10.tar.gz     
  5. aaa.tar.gz     
  6. mytest     
  7. test1101     
  8. test1102     
  9. weblog_2010_09   

  有其他函數網友們可以給本站投稿

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved