如何将json或class对象传递给命令行php脚本

Viv*_*hal 1 php oop bash shell command-line

我有

$client = new Google_Client();
Run Code Online (Sandbox Code Playgroud)

它是json中的令牌。

现在,我想通过shell_exec()将此客户端对象以及json令牌传递给另一个脚本。
让我们假设命令为

php myscript.php var1 var2 $client $token
Run Code Online (Sandbox Code Playgroud)

现在,因为命令行将所有参数作为字符串,所以我无法传递json和client对象。对JSON我发现serialize()unserialize()功能,我可以通过命令提示符,但什么$client对象如何通过它来命令提示符?请帮忙。

Nas*_*sim 5

序列化还将“字符串化”对象!您还可以对参数进行base64编码/解码,以防止出现特殊字符问题:

$aArgs = array($client, $token);
$sArgs = base64_encode(serialize($aArgs));
exec('php myscript.php '.$sArgs);
Run Code Online (Sandbox Code Playgroud)

  • 是的,但是escapeshellarg可能对序列化数据有麻烦=> http://www.php.net/manual/zh/function.escapeshellarg.php#109514 (4认同)