通过使用shell_exec进行后台执行,变量无法正常工作

时间:2013-12-22 08:16:39

标签: php shell

我使用shell_exec命令来获取php脚本的并行执行:

    shell_exec("echo \"<?php require_once 'path/to/function.php'; DBTest::function2('f2-2');?>\" | php >/dev/null 2>&1 & ");

这项工作正确,这样我就不能使用变量,就像这样:

    shell_exec("echo \"<?php require_once 'path/to/function.php'; $s =25 ; DBTest::function2('f2-2');?>\" | php >/dev/null 2>&1 & ");

它没有执行! 可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

由于你的字符串是双引号,你的$在传递给shell_exec之前会被展开。请参阅string parsing

使用反斜杠逃脱:

 shell_exec("echo \"<?php require_once 'path/to/function.php'; \$s =25 ; DBTest::function2('f2-2');?>\" | php >/dev/null 2>&1 & ");

在shell中,$也是一个特殊字符。我不确定你是否必须第二次逃脱它。