Не съм сигурен, че това е „най-добрият“ начин, но е един от начините. Тъй като низът с данни е разделен от общи знаци (всеки ключ/стойност, зададен от ;
, след това =
между ключа/стойността), по-голямата част от анализирането може да се извърши с explode()
. И можете да използвате trim()
- с персонализиран списък със знаци - за да премахнете допълнителни знаци около целия низ и ключовете/стойностите.
Обърнете внимание, че това ще очаква ключът никога да няма =
(въпреки че стойността може):
$data = '{ "signature" = "Alof/CEJ8a=="; "purchase-info" = "ewoJIml0"; "environment" = "Test"; "pod" = "100"; "signing-status" = "0"; }';
//remove the braces, spaces, and trailing semicolon
$data = trim($data, '{}; ');
$array = array();
//split on ';'
foreach(explode(';', $data) as $set){
//parse key/value
list($key, $value) = explode('=', $set, 2);
$array[trim($key, '"\' ')] = trim($value, '"\' ');
}
print_r($array);
Изход:
Array
(
[signature] => Alof/CEJ8a==
[purchase-info] => ewoJIml0
[environment] => Test
[pod] => 100
[signing-status] => 0
)
person
Tim Lytle
schedule
16.10.2011
json_decode()
? - person Alexsander Akers   schedule 16.10.2011JSON
, просто изглежда, че иска да бъде. - person Tim Lytle   schedule 16.10.2011