system

(PHP 3, PHP 4 , PHP 5)

system -- Execute an external program and display the output

Description

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. If a variable is provided as the second argument, then the return status code of the executed command will be written to this variable.

警告

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

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

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.

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

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.

例子 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;
?>

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

警告

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

See also exec(), passthru(), popen(), escapeshellcmd(), pcntl_exec(), and the backtick operator.