exec

(PHP 4, PHP 5, PHP 7)

exec执行一个外部程序

说明

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

exec() 执行 command 参数所指定的命令。

参数

command

要执行的命令。

output

如果提供了 output 参数, 那么会用命令执行的输出填充此数组, 每行输出填充数组中的一个元素。 数组中的数据不包含行尾的空白字符,例如 \n 字符。 请注意,如果数组中已经包含了部分元素,exec() 函数会在数组末尾追加内容。如果你不想在数组末尾进行追加, 请在传入 exec() 函数之前 对数组使用 unset() 函数进行重置。

return_var

如果同时提供 outputreturn_var 参数, 命令执行后的返回状态会被写入到此变量。

返回值

命令执行结果的最后一行内容。 如果你需要获取未经处理的全部输出数据, 请使用 passthru() 函数。

如果想要获取命令的输出内容, 请确保使用 output 参数。

范例

Example #1 exec() 例程

<?php
// 输出运行中的 php/httpd 进程的创建者用户名
// (在可以执行 "whoami" 命令的系统上)
echo exec('whoami');
?>

注释

Warning

当用户提供的数据传入此函数,使用 escapeshellarg()escapeshellcmd() 来确保用户欺骗系统从而执行任意命令。

Note:

如何程序使用此函数启动,为了能保持在后台运行,此程序必须将输出重定向到文件或其它输出流。否则会导致 PHP 挂起,直至程序执行结束。

Note:

On Windows exec() will first start cmd.exe to launch the command. If you want to start an external program without starting cmd.exe use proc_open() with the bypass_shell option set.

Note: 安全模式 启用时,可仅可用 safe_mode_exec_dir 执行文件。实际上,现在不允许在到可执行的路径中存在 .. 组件。

Warning

安全模式 启用时,命令字符串会被 escapeshellcmd() 转换。因此,echo y | echo x 会变成 echo y \| echo x

参见

相关文章
php 程序执行函数 把字符串转码为可以在 shell 命令里使用的参数php 程序执行函数 shell 元字符转义php 程序执行函数 执行一个外部程序php 过滤器函数 通过名称获取特定的外部变量,并且可以通过过滤器处理它php mcrypt 函数 在指定模块上执行自检php 别名和过时的 mysqli 函数 在主/从机制中强制在从机上执行一个查询php oci8 函数 返回语句执行后受影响的行数php 程序执行函数 执行外部程序并且显示原始输出php pcntl 函数 在当前进程空间执行指定程序php pcntl 函数 在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。php 杂项 函数 检查php的语法(并执行)指定的文件php 程序执行函数 关闭由 proc open 打开的进程并且返回进程退出码php 程序执行函数 获取由 proc open 函数打开的进程的信息php 程序执行函数 修改当前进程的优先级php 程序执行函数 执行一个命令,并且打开用来输入/输出的文件指针。php 程序执行函数 杀除由 proc open 打开的进程php 函数处理 函数 注册一个会在php中止时执行的函数php 程序执行函数 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。php 程序执行函数 执行外部程序,并且显示输出php 程序执行 程序执行函数
关注编程学问公众号