执行运算符

PHP 支持一个执行运算符:反引号 (``)。请注意,这不是单引号!PHP 将尝试将反引号中的内容作为 shell 命令执行;输出将被返回(即,它不会简单地转储到输出;它可以被分配给一个变量)。反引号运算符的使用与 shell_exec() 相同。

<?php
$output
= `ls -al`;
echo
"<pre>$output</pre>";
?>

注意:

shell_exec() 被禁用时,反引号运算符也被禁用。

注意:

与其他一些语言不同,反引号在双引号字符串中没有特殊含义。

添加注释

用户贡献的注释 3 个注释

robert
18 年前
只是一个通用的使用说明。当我意外地在某行代码的开头放了一个反引号,例如这样时,我很难解决我的脚本问题

[大量代码]
` $URL = "blah...";
[更多代码]

由于反引号位于 Tab 键的上方,我可能在缩进代码时误按了它。

造成如此难以发现的原因是,PHP 报告了一个解析错误,该错误发生在包含反引号的行 *下方* 约 50 行。(我的代码中没有任何其他反引号。)错误消息也相当隐晦

解析错误:解析错误,需要 `T_STRING` 或 `T_VARIABLE` 或 `T_NUM_STRING`,位于 /blah.php 的第 446 行

如果你是想要找到一个“不存在”的错误,请将其记入脑海。
ohcc at 163 dot com
7 年前
您可以在一对反引号 (``) 中使用变量。

<?php
$host
= 'www.wuxiancheng.cn';
echo `
ping -n 3 {$host}`;
?>
paolo.bertani
1 年前
如果您想避免 @robert 所描述的情况,您可能希望禁用 `shell_exec`,从而也禁用反引号运算符。

为此,只需编辑 `php.ini` 文件并将 `shell_exec` 添加到 `disable_functions` 设置中

; 此指令允许您禁用某些函数。
; 它接收一个以逗号分隔的函数名称列表。
; https://php.net/disable-functions
disable_functions = "shell_exec"

然后,您仍然可以使用 `exec()` 来运行终端命令。
To Top