@newaitix

Как распарсить строку?

Делаю следующее
$content=file_get_contents('php://input'); // ожидается JSON
$res=json_decode($content,true);
file_put_contents(__DIR__.'/array.txt',$current);

в файле array.txt вижу вот это
"{\"orderId\":\"ORDER-294\",\"paymentState\":\"CANCELED\",\"signature\":\"naK+\/aJT31EfQ=\",\"message\":\"\u043b \u043e\u043f\u043b\u0430\u0442\u0443\",\"storeId\":\"158CC63FB\"}"

Я хочу получить 294, но видимо что то делаю не так
$content=file_get_contents('php://input');
$res=json_decode(json_decode($content),true);
$orderId=explode('-',$res['orderId'])[1];
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 2
<?php

$content='"{\"orderId\":\"ORDER-294\",\"paymentState\":\"CANCELED\",\"signature\":\"naK+I79FduGkXFHpVT\/aJT31EfQ=\",\"message\":\"\u041a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b \u043e\u043f\u043b\u0430\u0442\u0443\",\"storeId\":\"158CC6EE85DA472AB3FB\"}"';
$res=json_decode(json_decode($content), true);

print_r($res);

/*Array
(
    [orderId] => ORDER-294
    [paymentState] => CANCELED
    [signature] => naK+I79FduGkXFHpVT/aJT31EfQ=
    [message] => Клиент не завершил оплату
    [storeId] => 158CC6EE85DA472AB3FB
)
*/
Ответ написан
zorba_buddha
@zorba_buddha
IT
вырезать первый и последний символ, применить stripslashes, после чего json_decode
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы