PHP-CLI, кажется, анализирует строку JSON из аргумента - PullRequest
4 голосов
/ 09 мая 2011

Использование PHP 5.3, если я отправляю строку в кодировке JSON в виде arugment через командную строку ...

/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 Ответ

4 голосов
/ 09 мая 2011

Если вы хотите использовать специальные символы в аргументе cli, вы всегда должны заключать их в кавычки

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

'{"key":"test","cache":1}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...