The passthru() function is similar to the exec() function in that it executes a command. If the return_var argument is present, the return status of the Unix command will be placed here. This function should be used in place of exec() or system() when the output from the Unix command is binary data which needs to be passed directly back to the browser. A common use for this is to execute something like the pbmplus utilities that can output an image stream directly. By setting the Content-type to image/gif and then calling a pbmplus program to output a gif, you can create PHP scripts that output images directly.
警告 |
如果想允许用户输入的数据被传入此函数,则需要使用 escapeshellarg() 或 escapeshellcmd() 来确保用户不能欺骗系统从而执行任意命令。 |
注: 如果你用此函数启动一个程序并希望保持在后台运行,必须确保该程序的输出被重定向到一个文件或者其它输出流去,否则 PHP 会在程序执行结束后挂起。
注: 在打开了安全模式时,只能执行在 safe_mode_exec_dir 之内的程序。为实用起见当前不能在指向程序的路径中包含 .. 成分。
警告 |
在打开了安全模式时,任何初始命令字符串之后的词都被看成一个单一的参数。因此,echo y | echo x 就成了 echo "y | echo x"。 |
See also exec(), system(), popen(), escapeshellcmd(), and the backtick operator.