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 程序执行 预定义常量php apache 函数 对指定的 uri 执行部分请求并返回所有有关信息php 程序执行函数 把字符串转码为可以在 shell 命令里使用的参数php 程序执行函数 shell 元字符转义php 杂项 函数 把字符串作为php代码执行php 程序执行函数 执行一个外部程序php 过滤器函数 获取一系列外部变量,并且可以通过过滤器处理它们php 过滤器函数 通过名称获取特定的外部变量,并且可以通过过滤器处理它php 程序执行函数 执行外部程序并且显示原始输出php pcntl 函数 在当前进程空间执行指定程序php pcntl 函数 在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。php 程序执行函数 关闭由 proc open 打开的进程并且返回进程退出码php 程序执行函数 获取由 proc open 函数打开的进程的信息php 程序执行函数 修改当前进程的优先级php 程序执行函数 执行一个命令,并且打开用来输入/输出的文件指针。php 程序执行函数 杀除由 proc open 打开的进程php 程序执行函数 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。php 程序执行函数 执行外部程序,并且显示输出php 杂项 函数 延缓执行若干秒和纳秒php 程序执行 程序执行函数
关注编程学问公众号