php shell_exec允许和限制的字符 - JSON 编码字符串作为参数



我正在尝试在php shell_exec函数中传递JSON编码的字符串,但似乎它不接受整个字符串。

我的代码:

$exec_string = json_encode( $data );
$command     = "php index.php exec_function " . $exec_string;
$output      = shell_exec( $command );`
echo "<pre>$output</pre>;

我的索引.php

public function exec_function ( $data ) {
  echo $data;
}

该函数仅回显字符串的某些部分,例如 ~300 个字符。输出字符串以"\"字符结尾,字符串的其余部分以"/"字符开头。

出于这个原因,我无法进一步解码 JSON 字符串。

有人请帮帮我。

谢谢

更新:

我刚刚删除了带有"/\"字符的变量,现在它返回完整的字符串。返回的字符串没有双引号 '"',所以我无法解码它。知道吗?

带有 $command 的行更改为以下内容: $command = 'php index.php exec_function "' . $exec_string.'"';问题是你有一些字符在 shell 中它认为会破坏参数,所以你必须用 Qoutes 括起来。

最新更新