Преобразование / приведение строки в ассоциированный массив PHP - PullRequest
0 голосов
/ 31 октября 2018

У меня есть строка ниже, полученная в ответ от Платежного шлюза

Array ([status] => 1 [msg] => 3 из 3 полученных транзакций Успешно [action_details] => Массив ([KE_5bd951c08f6e5] => Array ([mihpayid] => 7595132911 [request_id] => [bank_ref_num] => 183045739981 [amt] => 207,00 [action_amount] => 207,00 [txnid] => KE_5bd951c08f6e5 [дополнительные_зарядки] => 0,00 [productinfo] => Hyderabad-Open-Art-Competition-Childrens-Day-Special-1 [имя] => poornima gowda [bankcode] => HDFB [udf1] => 9483 [udf3] => [udf4] => [udf5] => [field2] => [field9] => success [error_code] => E000 [addon] => 2018-10-31 12:24:57 [payment_source] => payu [card_type] => [error_Message] => NO ERROR [net_amount_debit] => 207 [disc] => 0,00 [mode] => NB [PG_TYPE] => HDFCNB [card_no] => [udf2] => 16516 [status] => success [unmappedstatus] => захваченный [Merchant_UTR] => [Settled_At] => 0000-00-00 00:00:00) [KE_5bd94072a5706] => Массив ( [mihpayid] => 7594804413 [request_id] => [bank_ref_num] => [amt] => 103.50 [action_amount] => 103.50 [txnid] => KE_5bd94072a5706 [дополнительные_зарядки] => 0,00 [productinfo] => Hyderabad-Open-Art-Competition-Childrens-Day-Special-1 [имя] => lavanya [bankcode] => [udf1] => 9483 [udf3] => Hyderabad-open-art-Competition-Children's-Day-Special-1 [udf4] => [udf5] => [field2] => [field9] => Помечен как отклоненный как транзакция тайм-аут [код ошибки] => E408 [добавлено] => 2018-10-31 11:11:07 [payment_source] => payu [card_type] => [error_Message] => NO ERROR [net_amount_debit] => 0,00 [диск] => 0,00 [режим] => - [PG_TYPE] => [card_no] => [udf2] => 1279 [status] => fail [unmappedstatus] => bounce [Merchant_UTR] => [Settled_At] =>) [KE_5bd95e74f2421] => Array ([mihpayid] => 7595382223 [request_id] => [bank_ref_num] => [amt] => 103.50 [action_amount] => 103.50 [txnid] => KE_5bd95e74f2421 [дополнительные_зарядки] => 0,00 [productinfo] => Hyderabad-Open-Art-Competition-Childrens-Day-Special-1 [имя] => Дия Чакраборты [банковский код] => SBIB [udf1] => 9483 [udf3] => Hyderabad-open-art-Competition-Children's-Day-Special-1 [udf4] => [udf5] => [field2] => [field9] => Помечено как удаленное как транзакция тайм-аут [код ошибки] => E501 [добавлен] => 2018-10-31 13:19:10 [payment_source] => payu [card_type] => [error_Message] => Банк был невозможно подтвердить подлинность. [net_amount_debit] => 0,00 [диск] => 0,00 [mode] => NB [PG_TYPE] => SBINB [card_no] => [udf2] => 14079 [статус] => ошибка [unmappedstatus] => удалено [Merchant_UTR] => [Settled_At] =>)))

Как я могу преобразовать это в типичный массив PHP?

Я пытался использовать eval

eval("\$array = $str;");

Ничто не работает для меня. Любая помощь или предложение будет высоко ценится.

ответ var_dump:

/var/www/html/prod/application/controllers/Booking.php:3104:string '<pre>Array
(
    [status] => 1
    [msg] => 3 out of 3 Transactions Fetched Successfully
    [transaction_details] => Array
        (
            [KE_5bd951c08f6e5] => Array
                (
                    [mihpayid] => 7595132911
                    [request_id] => 
                    [bank_ref_num] => 183045739981
                    [amt] => 207.00
                    [transaction_amount] => 207.00
                    [txnid] => KE_5bd951c08f6e5
                    [additional_charges] => 0.00
   '... (length=4499)

Я использую CURL для запроса URL и передачи параметров, как показано ниже

$c = curl_init();
        curl_setopt($c, CURLOPT_URL, $wsUrl);
        curl_setopt($c, CURLOPT_POST, 1);
        curl_setopt($c, CURLOPT_POSTFIELDS, $qs);
        curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
        $o = curl_exec($c);

        return $o;

1 Ответ

0 голосов
/ 31 октября 2018

использовал эту функцию для обратного формирования массива из вывода prin_r ()

https://gist.github.com/simivar/037b13a9bbd53ae5a092d8f6d9828bc3
...