通过命令行为PHP传递对象

时间:2018-02-05 06:04:36

标签: php command-line

我正在尝试从另一个脚本中执行php脚本。第一个脚本的输出不依赖于第二个脚本,第二个脚本需要一段时间才能执行,所以我在第一个脚本中使用exec命令来运行第二个脚本,并附加带有&符号的行来制作第二个脚本在后台运行。

exec('php /path/to/secondScript.php > /dev/null 2> /dev/null &');

我知道使用exec命令存在固有的安全风险。我现在很好,因为我没有使用任何用户输入。

我的问题是我想将对象$ object传递给第二个脚本。我怎样才能做到这一点?我试过了:

exec('php /path/to/secondScript.php $object > /dev/null 2> /dev/null &');

在第二个脚本中使用:

$argv[0];

但它返回为null。

我尝试将exec行修改为:

exec("php /path/to/secondScript.php $object > /dev/null 2> /dev/null &");

但这使得剧本失败了。

由于$ object是一个对象,我是否需要先将其转换为字符串?

1 个答案:

答案 0 :(得分:0)

将对象序列化为字符串,然后尝试

$object = serialize($object);
exec("php /path/to/secondScript.php $object > /dev/null 2> /dev/null &");