«

PHP:system()的用法

时间:2024-3-1 21:52     作者:韩俊     分类: PHP


system

(PHP 4, PHP 5)

system — 执行外部程序,并且显示输出

说明

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

同 C 版本的 system() 函数一样, 本函数执行 command 参数所指定的命令, 并且输出执行结果。

如果 PHP 运行在服务器模块中, system() 函数还会尝试在每行输出完毕之后, 自动刷新 web 服务器的输出缓存。

如果要获取一个命令未经任何处理的 原始输出, 请使用 passthru() 函数。

参数

command

要执行的命令。

return_var

如果提供 return_var 参数, 则外部命令执行后的返回状态将会被设置到此变量中。

返回值

成功则返回命令输出的最后一行, 失败则返回 FALSE

范例

Example #1 system() 例程

<?php
echo '<pre>';

// 输出 shell 命令 "ls" 的返回结果
// 并且将输出的最后一样内容返回到 $last_line。
// 将命令的返回值保存到 $retval。
$last_line = system('ls', $retval);

// 打印更多信息
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
?>

注释

Warning

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

Note:

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

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

Warning

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

参见

exec() - 执行一个外部程序 passthru() - 执行外部程序并且显示原始输出 popen() - 打开进程文件指针 escapeshellcmd() - shell 元字符转义 pcntl_exec() - 在当前进程空间执行指定程序 执行操作符

标签: php php教程

热门推荐