如果我通过命令行发送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字符串中的数组似乎也没有按预期工作。
答案 0 :(得分:4)
如果想在cli参数中使用特殊字符,则应始终将它们用引号括起来
"{\"key\":\"test\",\"cache\":1}"
'{"key":"test","cache":1}'