加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP执行linux命令常用函数汇总

发布时间:2022-08-03 10:15:29 所属栏目:PHP教程 来源:互联网
导读:一般情况下,很少会用php去执行linux命令,不过特殊情况下,你也许会用到这些函数。以前我知道有二个函数可以执行linux命令,一个是exec,一个是shell_exec,通过本文给大家介绍PHP执行linux命令常用函数汇总,需要的朋友参考下。 一般情况下,很少会用php去
  一般情况下,很少会用php去执行linux命令,不过特殊情况下,你也许会用到这些函数。以前我知道有二个函数可以执行linux命令,一个是exec,一个是shell_exec,通过本文给大家介绍PHP执行linux命令常用函数汇总,需要的朋友参考下。
   
  一般情况下,很少会用php去执行linux命令,不过特殊情况下,你也许会用到这些函数。以前我知道有二个函数可以执行linux命令,一个是exec,一个是shell_exec。其实有很多的,结合手册内容,介绍以下6个函数。
   
  1,exec函数
   
  <?php  
  $test = "ls /tmp/test"; //ls是linux下的查目录,文件的命令
  exec($test,$array); //执行命令
  print_r($array);
  ?>
  返回结果如下:
   
  [root@krlcgcms01 shell]# php ./exec.php  
  Array  
  (  
  [0] => 1001.log  
  [1] => 10.log  
  [2] => 10.tar.gz  
  [3] => aaa.tar.gz  
  [4] => mytest  
  [5] => test1101  
  [6] => test1102  
  [7] => weblog_2010_09  
  )
  2,system函数
   
  <?php  
  $test = "ls /tmp/test";
  $last = system($test);
  print "last: $lastn";
  ?>
  返回结果:
   
  [root@krlcgcms01 shell]# php system.php  
  1001.log  
  10.log  
  10.tar.gz  
  aaa.tar.gz  
  mytest  
  test1101  
  test1102  
  weblog_2010_09  
  last:weblog_2010_09
  3,passthru函数
   
  <?php  
  $test = "ls /tmp/test";
  passthru($test);
  ?>
  4,popen函数
   
  <?php  
  $test = "ls /tmp/test";
  $fp = popen($test,"r"); //popen打一个进程通道
   
  while (!feof($fp)) { //从通道里面取得东西
  $out = fgets($fp, 4096);
  echo $out; //打印出来
  }  
  pclose($fp);
  ?>
  5,proc_open函数
   
  <?php  
  $test = "ls /tmp/test";
  $array = array(
  array("pipe","r"), //标准输入  
  array("pipe","w"), //标准输出内容  
  array("pipe","w") //标准输出错误  
  );  
  $fp = proc_open($test,$array,$pipes); //打开一个进程通道
  echo stream_get_contents($pipes[1]); //为什么是$pipes[1],因为1是输出内容
  proc_close($fp);
  ?>
  6,shell_exec函数
   
  <?php  
  $test = "ls /tmp/test";
  $out = shell_exec($test);
  echo $out;
  ?>
  popen,passthru,proc_open,shell_exec的返回结果如下:
   
  [root@krlcgcms01 shell]# php test.php  
  1001.log  
  10.log  
  10.tar.gz  
  aaa.tar.gz  
  mytest  
  test1101  
  test1102  
  weblog_2010_09
  我能发现的就这几个函数,能执行linux下的命令,我想应当还有吧,欢迎大家补充。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读