PHP Parse URL-кодированная строка со встроенным JSON

У меня проблема с анализом следующей строки xAPI в массив. Проблема в том, что parse_str () и parse_url () анализируют URL в кавычках, содержащихся в [content] …, что убивает формат JSON.

Authorization=Basic YmV0b1234XZlddle9ighrXRvc3VhdmVwY999929yZA==&Content-Type=application/json&X-Experience-API-Version=1.0.0&statementId=ef0ca1d6-1234-4e02-b403-7d4aab0df62c&content={"verb":{"id":"http://adlnet.gov/expapi/verbs/experienced"},"object":{"id":"http://mytest.myfavsite.com/?post_type=gb_xapi_content&p=52&preview=true/6lgIX5Hxep0","definition":{"name":{"und":"SpecificStatement"},"description":{"und":"SpecificStatement"},"type":"http://adlnet.gov/expapi/activities/module"},"objectType":"Activity"},"context":{"contextActivities":{"grouping":{"id":"http://mytest.myfavsite.com/?post_type=gb_xapi_content&p=52&preview=true"},"parent":{"id":"http://mytest.myfavsite.com/?post_type=gb_xapi_content&p=52&preview=true"}},"registration":"36fc1ee0-2849-1234-b697-71cd4cad1b6e"},"version":"1.0.0","actor":{"mbox":"mailto:[email protected]","name":"beto","objectType":"Agent"}}

То, с чем я хотел бы закончить, это массив элементов с неповрежденной строкой JSON в элементе массива [content].

Есть ли способ разбора строки, как это делает parse_str () … при этом игнорируется что-либо внутри кавычек элемента JSON — например, {"id":"http://mytest.myfavsite.com/?post_type=gb_xapi_content&p=52&preview=true"}

Заранее спасибо за любые идеи.

0

Решение

Пробовать json_decode($string) сначала, а затем запустить parse_str() на выбранном элементе.

0

Другие решения

Вопрос интересный.

Хотя будет искать чистое решение, вы, конечно, можете попробовать грубым, старомодным способом:

json_decode( substr( $str, strpos( $yourString, '&content=' )+9 ) )

Это отлично работает!

0

По вопросам рекламы [email protected]