一、执行运算符
PHP 支持一种独特的执行运算符,那就是反引号(“),然而,需要明确的是,这并不是我们通常在编程中所使用的单引号(’),而是另一种形式的引号。
在 PHP 中,当反引号被用于一段代码或者一个字符串时,PHP 会尝试将这段代码或字符串作为 shell 命令来执行。也就是说,它会尝试在系统的 shell 环境中运行这段代码或字符串。如果这个命令成功执行,那么它的输出信息会被 PHP 捕获并返回。换句话说,这些输出信息可以被赋值给一个变量,而不是直接被丢弃到标准输出。这种使用反引号运算符的效果与 PHP 中的 shell_exec() 函数是相同的。shell_exec() 函数也可以用来执行 shell 命令,并将命令的输出信息返回。
<?php $output = `ls -al`; echo "<pre>$output</pre>"; ?>
注意:
- 关闭了 shell_exec() 时反引号运算符是无效的;
- 与其它某些语言不同,反引号不能在双引号字符串中使用。
二、程序执行函数
- escapeshellarg : 把字符串转义为可以在 shell 命令里使用的参数;
- escapeshellcmd : shell 元字符转义;
- exec : 执行一个外部程序;
- passthru : 执行外部程序并且显示原始输出;
- proc_close : 关闭由 proc_open 打开的进程并且返回进程退出码;
- proc_get_status : 获取由 proc_open 函数打开的进程的信息;
- proc_nice : 修改当前进程的优先级;
- proc_open : 执行一个命令,并且打开用来输入/输出的文件指针;
- proc_terminate : 杀死由 proc_open 打开的进程;
- shell_exec : 通过 shell 执行命令并将完整的输出以字符串的方式返回;
- system : 执行外部程序,并且显示输出。