У меня проблема с анализом следующей строки 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"}
Заранее спасибо за любые идеи.
Пробовать json_decode($string)
сначала, а затем запустить parse_str()
на выбранном элементе.
Вопрос интересный.
Хотя будет искать чистое решение, вы, конечно, можете попробовать грубым, старомодным способом:
json_decode( substr( $str, strpos( $yourString, '&content=' )+9 ) )
Это отлично работает!