PHP-CLI似乎从参数解析JSON字符串

时间:2011-05-09 15:07:40

标签: json php

如果我通过命令行发送JSON编码的字符串作为一个arugment,则使用PHP 5.3 ...

/usr/local/bin/php -q /path/to/script.php {"key":"test","cache":1}

...在script.php中,代码是:

<?php print_r($argv); ?>

我回来了:

Array
(
    [0] => /path/to/script.php
    [1] => key:test
    [2] => cache:1
)

这完全出乎意料!

虽然我可以忍受这种情况,但我想知道PHP记录在哪里,以便我100%确定如果我每次都将JSON编码的字符串作为参数传递,它将会像这样工作。

JSON字符串中的数组似乎也没有按预期工作。

1 个答案:

答案 0 :(得分:4)

如果想在cli参数中使用特殊字符,则应始终将它们用引号括起来

"{\"key\":\"test\",\"cache\":1}"

'{"key":"test","cache":1}'