Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php shell_exec字符允许和限制-JSON编码字符串作为参数_Php_Json_Command Line Interface_Shell Exec - Fatal编程技术网

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

php 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>; 该函数仅回显字符串的某些部分,

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