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

php shell_exec character allowed and limit - JSON encoded string as parameter

我试图在 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>;

我的index.php

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

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

因此我无法进一步解码 JSON 字符串。

谁能帮帮我。

谢谢

更新:

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

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