Я звоню в файл PHP из приложения nodejs и отправляю аргумент, в то время как один из аргументов должен быть JSON (конечно, в виде строки)
Это не работает должным образом, так как строка выглядит как несколько аргументов и должна быть экранирована или правильно.
Пытаясь разделить проблему, я создал новый файл php, пытаясь выполнить извне (в этом примере из командной строки) ->
выполнение следующей команды
php test.php {"access_token":"acccess_token","id_token":"id_token","refresh_token":"refresh-token","token_type":"token_type","expiry_date":1515578624982,"expires_in":3600}
вот пример кода, который терпит неудачу
<?php
$json = $argv[1];
$res = json_decode($json,true);
echo "CHECK-ERROR".json_last_error().PHP_EOL."-----".PHP_EOL;
echo "END RESULTS".PHP_EOL.$res.PHP_EOL."-------".PHP_EOL;
?>
вот результат
Итак, несколько интересных фактов: - Изменение кода для использования аргумента в качестве локальной переменной - отлично работает. - помещение json в одинарные кавычки '{...}' - отлично работает. - вызов php из NodeJS с использованием '${jsonStringified}'
- работает нормально. (поскольку это та же идея, что и вышеупомянутое
Вопрос в том, какие другие решения существуют? (например, кодирование, экранирование), а не эту небольшую настройку?