我使用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 & ");
它没有执行! 可以帮忙吗?
答案 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中,$也是一个特殊字符。我不确定你是否必须第二次逃脱它。