system

(PHP 3, PHP 4, PHP 5)

system -- Execute an external program and display the output

说明

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

system() is just like the C version of the function in that it executes the given command and outputs the result.

The system() call also tries to automatically flush the web server's output buffer after each line of output if PHP is running as a server module.

If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function.

参数

command

The command that will be executed.

return_var

If the return_var argument is present, then the return status of the executed command will be written to this variable.

返回值

Returns the last line of the command output on success, and FALSE on failure.

例子 1. system() example

<?php
echo '<pre>';

// Outputs all the result of shellcommand "ls", and returns
// the last output line into $last_line. Stores the return value
// of the shell command in $retval.
$last_line = system('ls', $retval);

// Printing additional info
echo '
</pre>
<hr />Last line of the output: '
. $last_line . '
<hr />Return value: '
. $retval;
?>

注释

警告

如果想允许用户输入的数据被传入此函数,则应使用 escapeshellarg()escapeshellcmd() 函数来确保用户不能欺骗系统从而执行任意命令。

注: 如果你用此函数启动一个程序并希望保持在后台运行,必须确保该程序的输出被重定向到一个文件或者其它输出流去,否则 PHP 会在程序执行结束前挂起。

注: 在打开了安全模式时,只能执行在 safe_mode_exec_dir 之内的程序。为实用起见目前不能在指向程序的路径中包含 .. 成分。

警告

在打开了安全模式时,初始命令字符串之后的所有词都被看成一个单一的参数。因此,echo y | echo x 就成了 echo "y | echo x"

参见

exec()
passthru()
popen()
escapeshellcmd()
pcntl_exec()
backtick operator