PHP4手册:函数库及函数(十三) 程式执行功能函式库
--------------------------------------------------------------------------------
程式执行功能函式库
--------------------------------------------------------------------------------
本函式库共有 4 个函式
escapeshellcmd: 除去字串中的特殊符号。
exec: 执行外部程式。
system: 执行外部程式并显示输出资料。
passthru: 执行外部程式并不加处理输出资料。
--------------------------------------------------------------------------------
函式:escapeshellcmd()
--------------------------------------------------------------------------------
程式执行功能函式库
escapeshellcmd
除去字串中的特殊符号。
语法: string escapeshellcmd(string command);
传回值: 字串
函式种类: 作业系统与环境
内容说明
本函式除去了字串中的特殊符号,可以防止使用者耍花招来破解该伺服器系统。可以用本函式搭配
exec() 或是 system() 二个函式,酱子可以减少网路上的使用者恶意的破坏的机会。
使用范例
system(EscapeShellCmd($cmdline));
?>
--------------------------------------------------------------------------------
函式:exec()
--------------------------------------------------------------------------------
程式执行功能函式库
exec
执行外部程式。
语法: string exec(string command, string [array], int [return_var]);
传回值: 字串
函式种类: 作业系统与环境
内容说明
本函式执行输入 command 的外部程式或外部指令。它的传回字串只是外部程式执行后传回的最后一行;
若需要完整的传回字串,可以使用 PassThru() 这个函式。
要是参数 array 存在,command 会将 array 加到参数中执行,若不欲 array 被处理,可以在执行
exec() 之前呼叫 unset()。若是 return_var 跟 array 二个参数都存在,则执行 command 之后的状态
会填入 return_var 中。
值得注意的是若需要处理使用者输入的资料,而又要防止使用者耍花招破解系统,则可以使用
EscapeShellCmd()。
参考
system() PassThru() popen() EscapeShellCmd()
--------------------------------------------------------------------------------
函式:system()
--------------------------------------------------------------------------------
程式执行功能函式库
system
执行外部程式并显示输出资料。
语法: string system(string command, int [return_var]);
传回值: 字串
函式种类: 作业系统与环境
内容说明
本函式就像是 C 语中的函式 system(),用来执行指令,并输出结果。若是 return_var 参数存在,则
执行 command 之后的状态会填入 return_var 中。同样值得注意的是若需要处理使用者输入的资料,而
又要防止使用者耍花招破解系统,则可以使用 EscapeShellCmd()。若 PHP 以模组式的执行,本函式会
在每一行输出后自动更新 Web 伺服器的输出缓冲暂存区。若需要完整的传回字串,且不想经过不必要的
其它中间的输出介面,可以使用 PassThru()。
参考
PassThru() popen() Exec()
--------------------------------------------------------------------------------
函式:passthru()
--------------------------------------------------------------------------------
程式执行功能函式库
passthru
执行外部程式并不加处理输出资料。
语法: string passthru(string command, int [return_var]);
传回值: 字串
函式种类: 作业系统与环境
内容说明
本函式类似 Exec() 用来执行 command 指令,并输出结果。若是 return_var 参数存在,则执行
command 之后的状态会填入 return_var 中。若输出的资料是二进位的资料,并且需要输出到浏览器中
的话,使用本函式就相当合适了。例如使用 pbmplus 工具来执行指令,并传回二进位的图形资料。可以
先设定传回资料的标头 (header) 为 Content-type: image/gif,然后呼叫 pbmplus 程式处理图形资料
,并将二进位的图形资料直接传回浏览器。
参考
PassThru() Exec()