php shell_exec字符允许和限制-JSON编码字符串作为参数
我试图在phpphp shell_exec字符允许和限制-JSON编码字符串作为参数,php,json,command-line-interface,shell-exec,Php,Json,Command Line Interface,Shell Exec,我试图在phpshell\u exec函数中传递一个JSON编码的字符串,但它似乎不接受整个字符串 我的代码: $exec_string = json_encode( $data ); $command = "php index.php exec_function " . $exec_string; $output = shell_exec( $command );` echo "<pre>$output</pre>; 该函数仅回显字符串的某些部分,
shell\u exec
函数中传递一个JSON编码的字符串,但它似乎不接受整个字符串
我的代码:
$exec_string = json_encode( $data );
$command = "php index.php exec_function " . $exec_string;
$output = shell_exec( $command );`
echo "<pre>$output</pre>;
该函数仅回显字符串的某些部分,如~300个字符。输出字符串以“\”字符结尾,其余字符串以“/”字符开头
因此,我无法进一步解码JSON字符串
有人请帮帮我
谢谢
更新:
我刚刚删除了带有“/\”字符的变量,现在它返回完整的字符串。返回的字符串没有双引号',因此我无法对其进行解码。知道吗?用
$command
将行更改为以下内容:
$command='php index.php exec_function'$exec_字符串。“”;
问题是,您的shell中有一个字符,它认为它会破坏参数,因此您必须用qoutes将其括起来。谢谢您的回答。您知道为什么它没有返回完整的JSON编码字符串,但没有所有双引号吗?我无法解码它。再次感谢。我不知道您向exec发送了什么,m如果我看到的话,可能是这样。但是它似乎应该输出你给它的东西。我对
$\u POST
数组进行了编码。JSON编码的字符串总是有双引号键及其值。但是当我将其作为shell\u exec
参数传递时,它接收时没有所有双引号。例如{“key”:“value”}
变成{key:value}
。谢谢。听起来像是印刷品。
public function exec_function ( $data ) {
echo $data;
}