源码论坛公告:本站是一个交流学习建站资源的社区论坛,旨在交流学习源码脚本等资源技术,欢迎大家投稿发言! 【点击此处将锦尚放在桌面

源码论坛,商业源码下载,尽在锦尚中国商业源码论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 9069|回复: 0

[PHP编程] PHP执行普通shell命令流程解析

[复制链接]

1193

主题

1561

帖子

8820

金币

超级版主

Rank: 8Rank: 8

积分
19326
发表于 2020-9-18 19:50:20 | 显示全部楼层 |阅读模式

这篇文章主要介绍了PHP执行普通shell命令流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这里演示一些普通的shell命令

php执行shell命令,可以使用下面几个函数:
  1. string system ( string $command [, int &$return_var ] )
  2. string exec ( string $command [, array &$output [, int &$return_var ]] )
  3. void passthru ( string $command [, int &$return_var ] )
复制代码


注意的是:这三个函数在默认的情况下,都是被禁止了的,如果要使用这几个函数,就要先修改php的配置文件php.ini,查找关键字disable_functions,将这一项中的这几个函数名删除掉,然后注意重启apache。

首先看一下system()和passthru()两个功能类似,可以互换:

  1. <?php
  2.   $shell = "ls -la";
  3.   echo "<pre>";
  4.   system($shell, $status);
  5.   echo "</pre>";
  6.   //注意shell命令的执行结果和执行返回的状态值的对应关系
  7.   $shell = "<font color='red'>$shell</font>";
  8.   if( $status ){
  9.     echo "shell命令{$shell}执行失败";
  10.   } else {
  11.     echo "shell命令{$shell}成功执行";
  12.   }
  13. ?>
复制代码


执行结果如下:

2020082411444918.png


注意,system()会将shell命令执行之后,立马显示结果,这一点会比较不方便,因为我们有时候不需要结果立马输出,甚至不需要输出,于是可以用到exec()

exec()的使用示例:

  1. <?php
  2.   $shell = "ls -la";
  3.   exec($shell, $result, $status);
  4.   $shell = "<font color='red'>$shell</font>";
  5.   echo "<pre>";
  6.   if( $status ){
  7.     echo "shell命令{$shell}执行失败";
  8.   } else {
  9.     echo "shell命令{$shell}成功执行, 结果如下<hr>";
  10.     print_r( $result );
  11.   }
  12.   echo "</pre>";
  13. ?>
复制代码


运行结果如下:

2020082411445019.png


您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

锦尚中国源码论坛

聚合标签|锦尚中国,为中国网站设计添动力 ( 鲁ICP备09033200号 ) |网站地图

GMT+8, 2024-2-22 23:19 , Processed in 0.109375 second(s), 33 queries .

带宽由 锦尚数据 提供 专业的数据中心

© 锦尚中国源码论坛 52jscn Inc. 非法入侵必将受到法律制裁 法律顾问:IT法律网 & 褚福省律师 锦尚爱心 版权申诉 版权与免责声明