PHP执行外部命令的函数:exec(), system(), passthru(), shell_exec()

当编写 PHP 程序时,您有时可能需要执行系统级别的操作,例如执行外部命令。PHP 提供了多种执行外部命令的函数,包括 exec()、system()、passthru() 和 shell_exec()。以下是对这四种函数的详细解释和使用示例。

exec()

函数原型:

string exec ( string $command [, array &$output [, int &$return_var ]] )

exec() 函数执行命令,并返回输出结果的最后一行。可以将一个变量用作第二个参数,该参数将捕获命令的输出。第三个参数可以用于捕获命令的返回值。

示例 1:

// 执行 ls 命令并将结果输出到终端
exec('ls', $output);
print_r($output);

上述示例会将当前目录下的文件列表输出到终端。

示例 2:

// 执行 whoami 命令并打印返回值
exec('whoami', $output, $return_val);
echo "返回值:$return_val";
echo "\n输出结果:$output";

上述代码会输出当前用户的用户名,并打印出命令的返回值。

system()

函数原型:

string system ( string $command [, int &$return_var ] )

system() 函数会像在终端上一样执行命令,并将其输出直接发送到终端上。与 exec() 不同,system() 函数不会返回命令输出的最后一行。

示例 1:

// 执行 pwd 命令并将结果输出到终端
system('pwd');

上述示例会将当前工作目录的绝对路径打印到终端。

示例 2:

// 执行 date 命令并获取返回值
$date = system('date', $return_val);
echo "返回值:$return_val";
echo "\n输出结果:$date";

上述代码会输出当前的日期和时间,并打印出命令的返回值。

passthru()

函数原型:

void passthru ( string $command [, int &$return_var ] )

passthru() 函数几乎与 system() 相同,但它只输出命令的结果,而不会将结果作为返回值返回给调用程序。这使您可以将命令的输出在终端上显示而不会在脚本中捕获它。

示例 1:

// 执行 whoami 命令并将结果直接输出到终端
passthru('whoami');

上述示例会在终端上直接输出当前用户的用户名。

示例 2:

// 执行 uptime 命令
passthru('uptime');

上述代码将在终端上输出当前系统的负载平均值和运行时间。

shell_exec()

函数原型:

string shell_exec ( string $cmd )

shell_exec() 函数执行命令,并捕获命令的完整输出。与 exec() 不同,它返回命令的所有输出,而不仅仅是最后一行。

示例 1:

// 执行 ps 命令并捕获完整输出
$output = shell_exec('ps aux');
echo $output;

上述示例会将当前系统上运行的进程列表输出到终端。

示例 2:

// 执行 cat 命令并将结果输出到终端
shell_exec('cat /etc/passwd');

上述代码会将系统上现有用户的列表输出到终端。

在使用这些函数时,请格外小心。如果您不小心执行了危险命令,可能会导致系统出现安全漏洞。执行操作之前,请确认您拥有足够的权限,并小心处理参数,以免发生漏洞。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP执行外部命令的函数:exec(), system(), passthru(), shell_exec() - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • php简单静态页生成过程

    下面是“PHP简单静态页生成过程”的完整攻略: 什么是静态页? 通常所说的网站静态页面就是指浏览器请求一个网页后,服务器端无需进行特殊处理,直接返回一个固定的文件。其通常是由HTML文件、CSS文件和JS文件组成,没有数据库和动态脚本语言的支持。 PHP 简单静态页生成的过程 步骤一:新建一个模板文件 在 PHP 文件中创建一个基本的 HTML 模板。这个模…

    PHP 2023年5月26日
    00
  • PHP导出带样式的Excel示例代码

    下面就为大家介绍一下如何使用 PHP 导出带样式的 Excel,并附上两个示例说明。 1. 准备工作 首先,你需要安装 PHPExcel 库,这是一个用于在 PHP 中操作 Excel 的优秀库,它可以直接生成带样式的 Excel 文件。你可以从 PHPExcel 官方网站下载并安装。 2. 示范代码 下面是一个简单的 PHP 导出带样式的 Excel 示例…

    PHP 2023年5月26日
    00
  • php查询操作实现投票功能

    要实现投票功能,需要进行数据的查询和更新操作。下面以 PHP + MySQL 为例,讲解实现投票功能的攻略: 准备工作 创建一个 MySQL 数据库,例如命名为 voting_system,并在该数据库中创建一个表 votes,包含以下字段: id:投票选项的唯一标识,使用 INT 类型,作为主键 name:投票选项的名称,使用 VARCHAR 类型 vot…

    PHP 2023年5月27日
    00
  • 微信小程序如何修改本地缓存key中单个数据的详解

    当我们使用微信小程序进行开发时,一般会把需要频繁调用的数据缓存在本地。缓存数据的时候,往往使用wx.setStorageSync()和wx.getStorageSync()方法,这些方法需要传入一个本地缓存key和相应的value。如果想要单独修改本地缓存中key对应的值,可以使用以下的方法: 1. 获取本地缓存数据并修改其中的某个值 // 定义一个缓存数据…

    PHP 2023年5月30日
    00
  • ThinkPHP 模板substr的截取字符串函数详解

    当我们在使用ThinkPHP的模板引擎时,往往需要对字符串进行一些操作以满足需求。其中,截取字符串是比较常见的操作,而ThinkPHP的模板引擎也提供了相应的函数来进行字符串截取,接下来我们就来详细讲解ThinkPHP模板substr函数的使用方法。 substr函数简介 substr函数是ThinkPHP模板引擎提供的一个字符串截取函数,其用法和PHP中的…

    PHP 2023年5月26日
    00
  • VUE搭建分布式医疗挂号系统的前台预约挂号步骤详情

    VUE搭建分布式医疗挂号系统的前台预约挂号步骤详情 准备工作 在开始前,我们需要先确保已经安装好以下软件: Node.js Vue.js 步骤一:创建Vue.js项目 使用Vue.js官方提供的命令行工具vue-cli快速创建Vue.js项目。 # 全局安装vue-cli npm install -g vue-cli # 创建项目 vue create my…

    PHP 2023年5月27日
    00
  • php加密解密字符串示例

    下面是详细的 PHP 加密解密字符串示例攻略: 什么是字符串加密? 字符串加密是指把一个原始字符串转换为另一个字符串,并且只有掌握加密方法和密钥的人才能对加密字符串进行解密还原,以达到保护数据的目的。在 PHP 中,常用的字符串加密算法有 MD5、SHA1、AES 等。 字符串加密与解密 MD5 字符串加密示例 MD5 是一种常用的单向加密算法,可以将一个字…

    PHP 2023年5月26日
    00
  • 让KYLIN2.1默认自带的APACHE支持PHP

    要让 Kylin2.1 默认自带的 Apache 支持 PHP,需要进行以下步骤: 安装 PHP 在终端中输入以下命令: sudo apt-get install php php-common libapache2-mod-php 该命令会安装最新版的 PHP 和 Apache 的 PHP 模块。 配置 Apache 在终端中输入以下命令: sudo nan…

    PHP 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部